golang



  • 如果变量没有显式初始化,则被隐式地赋予其类型的零值(zero value),数值类型是0,字符串类型是空字符串""
    slice, map, channel, pointer, func, interface 零值为 nil

  • make和new的区别:
    1.make只能用来分配及初始化类型为slice,map,chan的数据;new可以分配任意类型的数据
    2.new分配返回的是指针,即类型*T;make返回引用,即T
    3.new分配的空间被清零,make分配后,会进行初始化
    number1 := make([]int, 0)
    number2 := new([]int)
    fmt.Println(number1)
    fmt.Println(number2)

  • 拥有自动垃圾回收、一个包系统、函数作为一等公民、词法作用域、系统调用接口、只读的UTF8字符串等。但是Go语言本身只有很少的特性,也不太可能添加太多的特性。例如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。但是,语言本身是成熟和稳定的,而且承诺保证向后兼容:用之前的Go语言编写程序可以用新版本的Go语言编译器和标准库直接构建而不需要修改代码


看恩吧
网站不承担任何有关评论的责任
  • 最新评论
  • 总共条评论
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦