GO 入门学习记录 20240715

学习渠道、go版本与IDE

 《Head First Go语言程序设计》

go 1.20 win64 版本,IDE:LiteIDE

重点记录

(1)书籍原文中译:“切片的底层数组并不能增长大小。如果数组没有足够的空间来保存新的元素,所有的元素会被拷贝至一个新的更大的数组,并且切片会被更新为引用这个新的数组。但是由于这些场景都发生在append函数内部,无法知道返回的切片与传入append函数的切片是否具有相同的底层数组。如果你保留了两个切片,会导致一些非预期的错误。”

即切片通过append增加元素后,会将其保存至一个底层数组中,若这个底层数组空间不足便会自动开辟一个更大新底层数组,因此append返回值传入给两个变量时,这两个变量有可能指向同一个底层数组,也有可能不同。

(2)golang中的映射类似于python中的字典,但可以访问未定义键值的量,会返回0值

(3)映射中可获取第二个返回值,是一个bool量,用来标识这个值是否被赋值过  value, ok := myMap["a"],OK为true则表示赋值过

(4)用已经存在的类型名称作为变量名称会发生类型遮蔽,用已经存在的变量名作为自定义类型名称的也会报错

(5)自定义类,在涉及其相关自定义函数时,可以将函数接收器修改为指针类型以实现传入变量本身的数值变化,且在函数调用时不需要加入前缀“&”。原译文“当你用一个非指针的变量调用一个需要指针的接收器的方法的时候,Go会自动为你将非指针类型转换为指针类型。同样指针类型也会自动转换为非指针类型,如果你调用一个要求值类型的接收器,Go会自动帮你获取指针指向的值,然后传递给方法。”

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值