Go之旅(四)- 函数

210 阅读1分钟

原文

tour.golang.org/basics/4

tour.golang.org/basics/5

tour.golang.org/basics/6

tour.golang.org/basics/7

译文

函数可以包含0个或多个参数。在本例中,add方法包含两个int类型参数

注意:类型放在变量名后面

关于为什么参数看上去这样,请参考:article on Go's declaration syntax

示例

package main

import "fmt"

func add(x int, y int) int {
	return x + y
}
func main() {
	fmt.Println(add(42, 13))
}

当两个或多个连续的命名参数共享同一个类型时,除了最后一个其他参数可省略类型

package main

import "fmt"

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

func main() {
	fmt.Println(add(42, 13))
}

函数可以返回任意数量的返回值,swap函数返回两个字符串

import "fmt"

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

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

可命名的返回值 Go返回值可被命名。如果被命名,那么相当于在函数的开始处声明了这两个命名变量。这些名字可用于文档化返回值的含义。无参的return语句返回已命名的返回值,这就是传说中的“裸”返回。

“裸”返回语句应该只在较短的函数中使用,正如示例中所示。它们可能严重影响程序的可读性。

package main

import "fmt"

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

func main() {
	fmt.Println(split(17))
}