Golang的一些缺点

老子叫甜甜 提交于 2019-12-05 00:32:38

1.右大括号不允许换行,否则编译报错;不允许包含未使用的包(设置vscode工具,保存文件时可自动修改格式)

2.不允许有未使用的变量(vscode工具无法解决)

3.错误处理原始,虽然引入了defer、panic、recover处理出错后的逻辑,函数可以返回多个值,但基本依靠返回错误是否为空来判断函数是否执行成功,if语句较多,比较繁琐,程序没有java美观。(官方解释:提供了多个返回值,处理错误方便,如加入异常机制会要求记住一些常见异常,例如IOException,go的错误Error类型较统一方便,还有panic,recover,defer机制)

4.package main的变量不能被其他package引用(有时不方便)

5.[]interface{}不支持下标操作

6.struct没有构造和析构,一些资源申请和释放动作不太方便

7.变量和函数使用大小写来区分是否对包外可见

8.仍然保留C/C++的指针操作,取地址&,取值*

9.没有泛型 (官方解释:go是服务器语言,主要特点是可扩展,可读和高并发性。加入泛型会带来run-time和类型体系复杂度提高的代价,且可用空的interface 替代,现在go越来越成熟,可以考虑在go2版本中加入泛型这些特性)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!