Go 中的内联优化
与某些语言不同,Go 不允许显式函数内联。相反,编译器会动态评估函数是否可能内联。此机制得到调试选项的帮助,该选项允许用户观察潜在的内联场景。然而,Go 编译器内联决策背后的确切逻辑在很大程度上仍然没有记录。
考虑以下代码,其中循环使用 Encrypt 函数迭代地加密数据:
func Encrypt(password []byte) ([]byte, error) { return bcrypt.GenerateFromPassword(password, 13) } for id, data := range someDataSet { newPassword, _ := Encrypt([]byte("generatedSomething")) data["password"] = newPassword someSaveCall(id, data) }
为了有效地内联加密函数,应考虑以下因素:
以上是Go 的编译器如何处理函数内联,以及我如何影响它?的详细内容。更多信息请关注PHP中文网其他相关文章!