
Go 中调用的函数可以通过函数参数来获取调用函数的参数。在 Go 中,参数可以通过传值或传引用的方式传递给函数,函数可以通过参数来获取调用者传递的值或指针。如果参数是值类型,函数内部的操作将会在参数的拷贝上进行,不会影响到调用者传递的原始值。如果参数是指针类型,函数内部的操作将会对指针指向的原始值进行修改。通过这种方式,函数可以访问和修改调用函数的参数,从而实现更灵活的功能。无论是值类型还是指针类型的参数,函数都可以通过参数来获取调用者传递的值或指针,并在函数内部进行相关操作。
请参阅参考代码https://go.dev/play/p/yig2b6dkcoc(也粘贴在此处):
就像这段代码一样 - 参数顺序没有传递给 sort.slice() 函数,但它在排序包的调用 less() 方法中得到了很好的打印。
实现此功能的属性是什么?
package main
import (
"fmt"
"sort"
)
func main() {
order := "abcd"
s := "bca"
fmt.Printf("ans: %v\n", customSortString(order, s))
}
func customSortString(order string, s string) string {
sort.Slice([]byte(s), func(a, b int) bool {
fmt.Printf("order: %v\n", order) // <------ How does this work? order is not passed to sort.Slice() function.
return s[a] < s[b]
})
return ""
}https://www.php.cn/link/58b7483ba899e0ce4d97ac5eecf6fa99:
函数文字是闭包:它们可以引用周围函数中定义的变量。然后,这些变量在周围的函数和函数文字之间共享,并且只要可访问,它们就会一直存在。
以上就是Go 中调用的函数如何访问调用函数的参数?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号