内存管理
Golang在C语言的基础上添加了内存管理机制,这使得C语言开发中让人头大的各种内存问题得以解决。Golang初始的几个版本内存管理机制被人诟病,垃圾回收会导致程序停顿,但是现在Golang的内存管理已经相当完善。然而,Golang提供内存管理机制的同时。依然保留了C语言的指针变量类型。因为Golang对普通变量采用复制的方式进行使用,而指针是将原始对象的地址进行传递,例如函数传参,普通变量会进行形参向实参的拷贝,函数内部对实参的修改不会影响到函数外的变量,而指针变量只是传递地址,函数内部对实参的修改会直接改变函数外的变量。保留C语言这一概念,为我们的编程带来了极大地灵活性,C语言编程中有一条简单的规则,如果是基本类型(int,float等)建议使用变量,除非需要对变量进行修改;如果使用复合类型(结构体等),如果不是需要深拷贝的场合,建议使用指针,因为这些类型的变量一般占用内存空间比较大,如果使用变量,会多次复制,影响程序性能。Golang保留了这一概念,就让我们可以按照自己的需要选择合适的方式——使用变量还是指针,代码设计的灵活性更大,改善代码性能的方式也更简单。
语句的简洁性
Golang的语句比C语言更加简洁
编码风格编译阶段检查
代码的风格和质量在语法层面上就已经进行了统一方便大家解决这类错误,提供了gofmt工具,运行gofmt直接就会对代码格式进行修正。
不使用动态链接库
Golang不支持动态链接库,Golang编译只会生成一个对应的可执行文件,引用第三方包,使用go get直接