【发布时间】:2017-10-26 02:12:06
【问题描述】:
Go 编程语言 (GOPL) 第 36 页包含以下内容:
每个算术和按位二元运算符都有一个对应的赋值运算符,例如,允许将最后一条语句重写为
count[x] *= scale这使我们不必重复(和重新评估)变量的表达式。
我不明白关于重新评估的部分。作者的意思是这样吗
count[x] = count[x] * scale
和
count[x] *= scale
编译成不同的字节码?
【问题讨论】:
-
"是否...编译成不同的字节码?"也许。也许不吧。但是想想如果
count[n(17)]和func n(int) int。使用赋值运算符,您可以保证不会对其进行两次评估。 (不:Go 中没有任何内容编译为字节码。Go 编译为机器码。)
标签: go