有人说,程序是这个世界上最简单的东西,因为你只需要知道if、for、switch就足够了。事实上,程序也是由判断和循环两种语句组成。程序员更喜欢和机器打交道,而不是和人打交道,是因为程序的世界里更简单,更单纯,没有复杂的关系,是1不会为0、是真也不会为假,一切的一切都是那么真实,不虚幻。此刻,我坚信技术宅们比谁都了解这个世界,比谁都看得更清楚,所以他们将自己宅起来,出淤泥而不染吧。
开门一段土嘈完后,发现本文没有什么好写的了。控制语句不就"判断和循环"吗? 写过”hello,world“的人,没理由没写过if和for。Go的控制语句相比其他语言只是形不同,而神相似。因此,具体的语法我也不想记录了。这里列举两点个人不爽的地方。
1、Go目前不支持if-else这种结构,真是各说各有理阿。具体看下面链接的讨论。
http://code.google.com/p/go/issues/detail?id=65
2、Go的if、for、switch的条件判断语言上不需要加括号。虽然,此举让程序员少敲了两个字符,但说真心话,我真的不在乎多敲那两个字符阿,并且我怎么就觉得多一对括号看起来就是要美观一点呢。好吧,土嘈完毕,我表示很理解,这个世界本来就是千奇百怪的,不同的人有不同的审美观麻。只是遗憾,自己的审美和Go作者不一致。
必须赞一下go的switch,这家伙被加强了不少。最屌的是case语句不在只能是常量或整数,而可以提供表达式。我想这个就是用来替换if - else if - else if - else 这类结构的。看一段例子:
switch c {
case '0' <= c && c <= '9':
return c - '0'
case 'a' <= c && c <= 'f':
return c - 'a' + 10
case 'A' <= c && c <= 'F':
return c - 'A' + 10
}
最后,还得为Go鼓掌的是,它不支持while,do-while循环。有了for完成循环,为什么还要设计出while,甚至是do-while呢?这不是故意让一种语意多种表达吗?奇技淫巧只能用来泡妞、把妹、忽悠MM,真正的工业级工具应该是简单优雅、无歧义。再次bs一把C++,虽然我在淘宝的title是C++开发工程师,自己真是惭愧。
总的来说,Go的控制语句完全可以做所有你想做的事情了,并且更加灵活,更加简单。
写到最后,发现这篇就是以土嘈为主,笔记为辅,感觉真好,开开心心回家了。