【发布时间】:2018-08-21 01:42:56
【问题描述】:
【问题讨论】:
-
你有什么具体的想法吗?如果您只是在寻找“是”或“否”,答案是“是” - 但仅此信息几乎是无用的,因为有许多极端情况可能会或可能不会发生。
标签: go compiler-optimization constantfolding
【问题讨论】:
标签: go compiler-optimization constantfolding
常量折叠是识别和评估常量的过程 在编译时表达式而不是在运行时计算它们。
The Go Programming Language Specification
常量表达式只能包含常量操作数并且是 在编译时进行评估。
import "math/big"Package big 实现任意精度算术(大数)。
Go 常量表达式在编译时进行评估。用 Go 编写的 Go gc 编译器使用包 big 来计算数值常量表达式。
【讨论】:
尝试编写一个简单的程序:例如。
package main
import "fmt"
func main() {
fmt.Println(12345*1000)
}
现在将其编译为程序集
go tool compile -S examle.go
现在在结果中找到 12345,你就会得到答案。
【讨论】: