Go语言和C++还是很像的,比如指针,值,引用等,但是Go语言有GC,这就极大的方便了我们编程,不用考虑内存使用的问题,这也是选Go不选C++的原因,因为管理内存确实不是应用编程要考虑的问题,而是更底层的系统编程。
我们大概知道,几乎所有语言中,变量有的作用范围有全局变量和局部变量。通常来说,局部变量的作用范围更短,一般在函数中的变量就是局部变量。在c++中,局部变量是分配在堆上的,返回一个局部变量会报错,但是Go中,编译器可以决定是分配在堆上还是栈上,保证返回局部变量不会报错,非常贴心。
Go和C++都有new这个字符,在Go中,new是内置函数,用于分配内存,并返回指针。在c++中,new是关键字,大概也是分配内存,但还是有很大的不一样。
在数据类型上,go语言很特别,没有double类型及其关键字,而是float32,float64。并且由于go语言不支持函数重载,在math包中,参数类型都是float64,如果是其他类型的数字,则需要强制类型转换,灵活性不如C++。
参考博客:Go语言---函数返回局部变量地址
请发表评论