在 Go 中如何转储一个方法的 GOSSAFUNC 图 | Linux 中国
这篇文章介绍了如何为函数和方法打印 SSA 输出。
- 来源:https://linux.cn/article-12350-1.html
- 作者:Dave Cheney
- 译者:geekpi
(本文字数:1684,阅读时长大约:2 分钟)
Go 编译器的 SSA 后端包含一种工具,可以生成编译阶段的 HTML 调试输出。这篇文章介绍了如何为函数和方法打印 SSA 输出。
让我们从一个包含函数、值方法和指针方法的示例程序开始:
package main
import (
"fmt"
)
type Numbers struct {
vals []int
}
func (n *Numbers) Add(v int) {
n.vals = append(n.vals, v)
}
func (n Numbers) Average() float64 {
sum := 0.0
for _, num := range n.vals {
sum += float64(num)
}
return sum / float64(len(n.vals))
}
func main() {
var numbers Numbers
numbers.Add(200)
numbers.Add(43)
numbers.Add(-6)
fmt.Println(numbers.Average())
}
相关文章