语法简单
抛开语法样式不谈,单就类型和规则而言,Go与C99、C11相似之处颇多,这也是我能接受它被冠以“NextC”名号的重要原因。
即便我是个坚定的C拥趸,也不得不承认,它处于简单和复杂的两极。C简单到你每写下一行代码,都能在脑中想象出编译后的模样,指令如何执行,内存如何分配,等等。而C的复杂在于,它有太多隐晦而不着边际的规则,着实让人头疼。相比较而言,Go从零开始,没有历史包袱,在汲取众多经验教训后,可从头规划一个规则严谨、条理简单的世界。
人们习惯拿关键字和控制语句的数量来作为Go简单的例证,我倒觉着这并不合适。诚然,更少的语言规则有助于入门学习,这无可厚非。但更重要的在于,语言规则严谨,没有歧义,更没什么黑魔法变异用法。任何人写出的代码都基本一致,这才是简单的本质。放弃部分“灵活”和“自由”,换来更好的维护性,我觉得是值得的。
将“++”、“–”从运算符降级为语句,保留指针,但默认阻止指针运算。初时的不习惯,并不能掩盖它们带来的长