Go
文章平均质量分 54
imred
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
展开
-
Go:实现接口时指针接收器和值接收器的区别
在为类型定义方法时,如果没有避免拷贝或在方法中修改对象的需求,那选择指针接收器和值接收器区别不大。大多数情况下,我们可以通过指针直接调值接收器方法,也可以通过值直接调指针接收器方法,go会为我们自动做值和指针之间的转换:type A struct { d int}func (a A) print() { fmt.Println(a.d)}type B struct { d int}func (b *B) print() { fmt.Println(b.d)原创 2021-06-12 21:48:56 · 2574 阅读 · 0 评论 -
Go:fmt.Print系列函数为什么默认情况下不打印结构体中指针字段指向的值?
在Go中,一个结构体如果含有一个指针字段,在默认情况下,使用fmt.Print系列函数打印这个结构体时,并不会打印这个指针指向的值。因此,对于下面的代码:type Foo struct { A int}type Bar struct { F *Foo}func main() { b := Bar{&Foo{1}} fmt.Printf("%+v\n", b)}其输出为:{F:0xc0000140a0}map也是类似的,如果map的value类型为原创 2021-05-22 19:01:15 · 1541 阅读 · 0 评论