函数声明
在 go 中声明函数的语法是:
func name(parameter) (result-list){
//body
}
函数声明以func关键字开头,后跟name
(函数名). 在括号中指定参数,后面为函数返回值result-list
指定参数的语法是,参数名称后跟类型。可以指定任意数量的参数,例如(parameter1 type, parameter2 type)
。而{,}
内的代码为函数的主体内容。
- 函数组成
- 函数名
- 参数列表(parameter)
- 返回值(result-list)
- 函数体(body)
参数和返回类型在函数中是可选的。因此,以下语法也是有效的函数声明。
func name() {
}
示例函数
单返回值函数
package main
import (
"fmt"
)
func plus(a, b int) (res int){
return a + b
}
func main() {
a, b := 90, 6
sumAll := plus(a, b)
fmt.Println("sum", sumAll)
}
上面程序,函数plus
接受两个 int 类型的值,并返回最终和。输出结果如下:
sum 96
多返回值函数
一个函数可以返回多个值。
package main
import (
"fmt"
)
func multi() (string, int) {
return "小李", 18
}
func main() {
name, age := multi()
fmt.Println("name:", name, "age:", age)
}
上述程序降会输出:
name: 小李 age: 18
命名返回值
可以从函数返回命名值。如果返回值被命名,则可以认为它在函数的第一行被声明为变量。
// 被命名的返回参数的值为该类型的默认零值
// 该例子中 name 默认初始化为空字符串,height 默认初始化为 0
func namedReturnValue()(name string, height int){
name = "xiaoming"
height = 180
return
}
参数可变函数
package main
import (
"fmt"
)
func sum(nums ...int)int{
fmt.Println("len of nums is : ", len(nums))
res := 0
for _, v := range nums{
res += v
}
return res
}
func main(){
fmt.Println(sum(1))
fmt.Println(sum(1,2))
fmt.Println(sum(1,2,3))
}
匿名函数
func main(){
func(name string){
fmt.Println(name)
}("https://www.gotribe.cn")
}