函数

函数 #

函数参数 #

值传递 #

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())

本文访问量

本站总访问量

本站总访客数