如果有下面的功能,Go可以让程序员更高效。
1. 数学类型的自动转换。现在做个整数跟浮点数的计算也要手动转类型。据说是为了更安全和可预测的代码。但是其他主流语言都支持自动转,大家早就习惯了。需要考虑类型安全的地方,该考虑的人自然会去考虑。
2. Polymorphism的支持。interface对多态的支持还是比较有限。down casting做不了有的时候还是不大方便。比如下面这段代码就编不过
type Base struct { xxxx } type Derived struct { Base } func main() { v1 := &Drived{} var v2 *Base v2 = v1 //编译不过 v2 = *Base(v1) //也不行 }
3. 更方便的数组的操作比如Contains(这个很常用的东西没有实在是不方便),使用加号连接数组(每次要写append太不现代了),map(map和generator这样的东西有的时候用起来太方便了),排序(sort库使用起来还是不太方便)相比之下swift里面那个operator function就cool很多。
4. 更多的容器库,比如Set,SortedSet等
5. 动态链接库。刚知道的这个的时候还是有些吃惊,要取代C/C++语言,这个东西都不支持怎么可能?扩展起来岂不是很麻烦?
6. 更好的异常处理的支持。panic还是太麻烦,老是要敲重复的代码,手指头太累。
7. 带名字的参数表和参数默认值。这么好的东西干嘛不支持尼?
8. 宏。像__FILE__, __FUNCTION__这样的宏还是挺有用的。有些地方用宏定义可以节省很多代码。
9. 方法重载。跟7可以在一起实现。
10. 类方法。在方法名前加前缀也能模拟,但是很难看,不是吗?
11. 三元操作符。 x?x:x。不理解为什么不支持这个远古功能,忘了?
待续。。。