原文
译文
函数可以包含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))
}