知识卡片

故意笨拙以阻止异常滥用

专业/工作 · 470.b.1.a.1.c.3.a.6.a.2.d.1.a.1.c.1.a

内容

panic/recover 表面上和其他语言的异常机制很像,但 Go 的创始人之一 Rob Pike 曾把它们形容为 “故意笨拙”——语言设计者刻意没有让这套机制用起来顺手愉快,为的就是让开发者很少去用它。发散:这是一个很少见但值得记住的设计 手法——不是靠文档或约定去劝阻某种用法,而是直接把语言机制做得”不好用”,用体验上的摩擦力去 引导使用者的行为习惯,比单纯写在风格指南里更难被绕过。

参考来源

- 位置:《Head First Go语言程序设计》第12章《重新站起来:从失败中恢复》(源文件:_epub-src/index_split_002.html) - 结论依据:原文在该章节围绕“panic/recover表面上和其他语言的异常机制很像,但Go的创始人之一RobPike曾把它们形容为"故意…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:了MakeSound方法的值来播放: 你只能调用接口中定义的方法 一旦你给一个接口类型的变量(或方法的参数)赋值,你就只能调 用接口定义的方法。 假设我们创建了Robot类型,除了有一个MakeSound方法外,还有 一个Walk方法。我们在play函数中增加对Walk的调用,并且将Robot的 值传入play。 但是代码没有编译成功,因…