函数

语法

Golang的函数语法和Java、C等有非常大的不同:

  • 函数参数定义是类型在变量名之后,而不是变量名之前
  • 函数返回值定义在函数签名之后,而不是函数签名之前
  • 函数可以返回多个值
func swap(x, y string) (string, string) {
	return y, x
}

参数

函数可以没有参数或有多个参数。

注意类型在变量名 之后

func add(x int, y int) int {
	return x + y
}

当两个或多个连续的参数是同一类型,则除了最后一个类型之外,其他都可以省略。

func add(x, y int) int {
	return x + y
}

返回值

函数可以返回任意数量的返回值。这点和很多语言不同:

func swap(x, y string) (string, string) {
	return y, x
}

func main() {
	a, b := swap("hello", "world")
	fmt.Println(a, b)
}

Go 的返回值可以被命名,并且像变量那样使用。

func split(sum int) (x, y int) {
	x = sum * 4 / 9
	y = sum - x
	return
}