golang编译器使用常量折叠吗?

时间:2017-10-24 21:46:53

标签: go compiler-optimization constantfolding

只是想知道“go”编译器是否使用任何类型的优化,例如常量折叠。

https://en.wikipedia.org/wiki/Constant_folding

通过谷歌搜索但无法找到我正在寻找的答案。

2 个答案:

答案 0 :(得分:6)

  

Constant folding - Wikipedia

     

恒定折叠是识别和评估常数的过程   表达式在编译时而不是在运行时计算它们。

  

The Go Programming Language Specification

     

Constant expressions

     

常量表达式可能只包含常量操作数   在编译时评估。

  

Package big

import "math/big"
     

Package big实现了任意精度算术(大数字)。

Go常量表达式在编译时计算。用Go编写的Go gc编译器使用包big来计算数值常量表达式。

答案 1 :(得分:3)

尝试编写一个简单的程序:例如。

GetAll

现在将其编译为程序集

package main

import "fmt"

func main() {
    fmt.Println(12345*1000)
}

现在在结果中找到12345,你就会有答案。