最近在学习这门语言,主要是受本站《程序员如何选择自己的第二语言》这个问题的影响,想找一门函数式语言来看看,正好以前搞过java,于是就选择了scala,虽然它不是纯种的函数式编程,但也具有一定的特色。
花了一个下午就把那本《Scala编程》看完了,基本语法都很简单,大多数跟一般语言差不多。但是因为scala是一门函数式语言,这些符号其实都是函数,理解了这一点剩下的都容易了。但是问题也来了,我现在可以写一点小东西了,但是我发现你写出来东西要让第二个人看得懂是一件非常不容易的事情,因为它的自由度太大了,比如在一般的语言里
if (array.contains(item))
在scala我们可以文艺的这样写,像诗一样
if (array contains item)
如果2x一点的,自己重载个操作符然后搞个倒置
if (item ~: array)
如果没有手册,你能理解在这些程序中奇奇怪怪的符号吗?scala有自己的编程指导规范么,这要是搞大规模开发岂不是要昏头了?
首先,可读性是个因人而异的东西。有人觉得Java事无巨细的语法容易看懂,有人却觉得Java的语法太过冗长影响理解。(当然,brainfxxk肯定不容易读:P)
其次,任何语言总有“易读”和“难读”的写法,关键看怎么写,所以适当的编码规范和评审是很必要的。
最后,操作符重载应该基于操作符的语意,比如C++中
<<
操作符就应该用在输出相关的操作上,如果用*
来输出会很奇怪。Just because you can doesn't mean you should.