自动垃圾回收
垃圾回收,即所有的内存分配动作都会被在运行时记录,同时任何对该内存的使用也都会被记录,然后垃圾回收器会对所有已经分配的内存进行跟踪监测,一旦发现有些内存已经不再被任何人使用,就阶段性回收这些没人用的内存。
Go语言没有C++“强大”的指针计算功能,因此可以很自然地包含垃圾回收功能。因为垃圾回收功能的支持,开发者无需大新所指向的对象失效的问题,因此Go语言中不需要delete关键字,也不需要free()方法来明确释放内存。
丰富的内置类型
Go语言除了基本的内置类型(整形和浮点型)外还支持一些高级类型(数组和字符串),此外还内置了一个对于其他静态类型语言通常用库方式支持的字典类型(map)和数组切片(slice)。
由于内置的原因,可以直接使用相关的类型,而不需要去依赖相关的包。
函数多返回值
没有被明确赋值的返回值将保持默认的空值。如果开发者只对其中的几个参数感兴趣可以使用占位符来避免完全没用的变量。
错误处理
Go语言引入3个关键字用于标准的错误处理流程,这三个关键字分别为defer、panic和recover。Go语言的错误处理机制可以大量减少代码量,让开发者也无需仅仅为了程序安全而添加大量一层一层的try-catch语句。可以避免在层层代码嵌套中定位业务代码。
匿名函数和闭包
Go语言中所有的函数时值类型,可以作为参数传递。Go还支持常规的你迷宫函数和闭包。
类型和接口
Go不支持继承和重载,而支持最基本的类