Go入门-常见陷阱
1. Go 的指针
Go的指针和C的指针很类似,这也是Go被归类于C类语言的原因,Go的指针不支持偏移运算,即不能向C一样让指针+1,-1。
1.1. 正常使用
先来看第一个,符号&
即可取到对象的地址。
1 | func sample1() { |
1 | [0 1 2 3 4 5 6 7 8 9] |
1.2. for循环问题
下面的输出全是9,因为for循环的value是共用一个地址的。
1 | func sample2() { |
2. Go 的 new 和 make
new 只分配内存,make不仅分配内存还初始化对象。
slice、chan、map一般可以使用make初始化。