Go语言学习——函数一
函数
定义函数使用func关键字:
func 函数名(参数)(返回值){
函数体
}
其中:
- 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
- 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。
- 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。
- 函数体:实现指定功能的代码块。
函数的调用
函数名()的方式调用函数
参数
类型简写
可变参数
返回值
多返回值
返回值命名
package main
import "fmt"
// 函数
// 函数存在的意义?
// 函数是一段代码的封装
// 把一段逻辑抽象出来封装到一个函数中,给它起个名字,每次用到它的时候直接用函数名调用就可以了
// 使用函数能够让代码结构更清晰、更简洁。
// 函数的定义
func sum(x int, y int)(ret int) {
return x + y
}
// 没有返回值
func f1(x int, y int) {
fmt.Println(x + y)
}
// 没有参数没有返回值
func f2(){
fmt.Println("f2")
}
// 没有参数但有返回值的
func f3() int {
// return 3
ret := 3
return ret
}
// 返回值可以命名也可以不命名
// 命名的返回值就相当于在函数中声明一个变量
func f4(x int, y int)(ret int) {
ret = x + y
return // 命名的可以不写ret 使用命名返回值可以return后省略
}
// 多个返回值
func f5() (int, string) {
return 1, "北京"
}
// 参数的类型简写:
// 当参数中连续多个参数的类型一致时,我们可以将非最后一个参数的类型省略
func f6(x, y, z int, m, n string, i, j bool) int {
return x + y
}
// 可变长参数
// 可变长参数必须放在函数参数的最后
func f7(x string, y ...int) {
fmt.Println(x)
fmt.Println(y) // y的类型是切片slice 如果不传 []
}
// Go语言中没有默认参数这个概念
func main() {
r := sum(1, 2)
fmt.Println(r)
_, n := f5()
fmt.Println(n)
f7("下雨了")
f7("下雨了", 1, 2, 3, 4, 5)
}
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16219788.html