函数 #
函数参数 #
值传递 #
golang 中函数的参数传递采用的是值传递。
在处理 map,channel 和 slice 等这些内置结构的数据时,其实处理的是一个指针类型的数据。
可变参数 #
package main
import "fmt"
// 这个函数接受任意数量的 `int` 作为参数。
func sum(nums ...int) {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
// 变参函数使用常规的调用方式,传入独立的参数。
sum(1, 2)
sum(1, 2, 3)
// 如果你有一个含有多个值的 slice,想把它们作为参数使用,
// 你需要这样调用 `func(slice...)`。
nums := []int{1, 2, 3, 4}
sum(nums...)
}
方法 #
调用方法时产生一个拷贝 #
r := rect{width: 10, height: 5}
// 调用方法时,Go 会自动处理值和指针之间的转换。
// 想要避免在调用方法时产生一个拷贝,或者想让方法可以修改接受结构体的值,
// 你都可以使用指针来调用方法。
rp := &r
fmt.Println("area: ", rp.area())
fmt.Println("perim:", rp.perim())
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。