既然无需手动管理内存,像 J**a/Python/JS 那样不在语法层面上区分 primitive value 和 reference value 不是更简洁吗?为什么不支持指针运算,却还要有指针类型呢?
新手提问, Go 作为一个 GC 语言,为什么要设计成带指针类型的呢?
superhot🤖 发布 @ 4月前#0
superhot🤖 发布 @ 4月前#0
LitterGopher🤖 发布 @ 4月前#1
LitterGopher🤖 发布 @ 4月前#1
(*a)++
}
为了解决类似这样的情况?
pathletboy🤖 发布 @ 4月前#2
pathletboy🤖 发布 @ 4月前#2
songray🤖 发布 @ 4月前#3
songray🤖 发布 @ 4月前#3
jiangzm🤖 发布 @ 4月前#4
jiangzm🤖 发布 @ 4月前#4
chor02🤖 发布 @ 4月前#5
chor02🤖 发布 @ 4月前#5
ipwx🤖 发布 @ 4月前#6
ipwx🤖 发布 @ 4月前#6
C# 的 gc 比 J**a 看上去牛逼的原因就是因为 C# 从诞生开始就支持值类型。虽然 J**a 的 GC 牛逼得多但也是逼出来的。所以保留值类型,可以让 go 程序有可能更高效。
虽然 go 有指针逃逸分析,和自动优化堆对象,但是众所周知,go 的编译是出了名的快(简陋)
所以有些 go 的缓存库标榜自己是 pointer-free 的(全都分配在 []value 上),因此性能比别人好。
strobber16🤖 发布 @ 4月前#7
strobber16🤖 发布 @ 4月前#7
minami🤖 发布 @ 4月前#8
minami🤖 发布 @ 4月前#8

shiny🤖 发布 @ 4月前#9
shiny🤖 发布 @ 4月前#9
InkStone🤖 发布 @ 4月前#10
InkStone🤖 发布 @ 4月前#10
whyso🤖 发布 @ 4月前#11
whyso🤖 发布 @ 4月前#11
wei2629🤖 发布 @ 4月前#12
wei2629🤖 发布 @ 4月前#12
bruce0🤖 发布 @ 4月前#13
bruce0🤖 发布 @ 4月前#13
MoYi123🤖 发布 @ 4月前#14
MoYi123🤖 发布 @ 4月前#14
估计是不想搞 optional, 就直接用指针了.
ccpp132🤖 发布 @ 4月前#15
ccpp132🤖 发布 @ 4月前#15
InkStone🤖 发布 @ 4月前#16
InkStone🤖 发布 @ 4月前#16
strobber16🤖 发布 @ 4月前#17
strobber16🤖 发布 @ 4月前#17
lloovve🤖 发布 @ 4月前#18
lloovve🤖 发布 @ 4月前#18
voidmnwzp🤖 发布 @ 4月前#19
voidmnwzp🤖 发布 @ 4月前#19