看了一篇文章:http://lucumr.pocoo.org/2012/10/18/such-a-little-thing/ 里面拿了 Ruby、Py、Rust 对比说明分号的来由: 为了防止 Ruby 里“为避免返回无用的值而在方法末尾加个 nil”的做法而赋予了有无分号特殊的意义。
我的反应是:就算 Ruby 有这样的问题,因为 Rust 是静态类型,只要方法定义里加上表示无返回值得类型就好,而且 Scala 也用了类似 Ruby 的内部迭代器,它就没有分号。 是我没找到重点吗……
补充: 想问的问题:为什么 Rust 里分号的规则这么奇怪 猜测:Rust 最初设计就是想要用 C 风格的大括号和分号。但是现在因为几乎一切都是表达式,于是想省去方法末尾的 return,就赋予了(方法里最后一个表达式)有无分号特殊的意义