这一期分享下函数的定义和调用,那么什么是函数呢?函数就是一系列为了某个特定功能而聚集在一起的代码,在给予相同的输入时输出永远相同。这就是函数,函数功能越单一复用度越高。一个函数最好不要超过50行代码。这一期分为以下几个部分:
- 函数定义语法
- 函数调用
- 函数举例
一、函数定义语法
func 函数名(参数列表)(返回值类型1, 返回值类型2){
函数代码块......
return 返回值1,返回值2
}
语法解释:
- 函数名不能省略,不能数字和特殊符号开头,遵守变量命令规则
- 参数列表可以省略,此时函数无输入参数
- 返回值类型1,返回值类型2和两边的圆括号都可以省略此时函数没有返回值。
- 当只有一个返回值时圆括号可以省略
- func关键字必须与左花括号在一行
- 函数返回值可以指定变量名称,但是要圆括号。看下面例子
函数定义举例:
func testFunc(i int)(value int, name string){
fmt.Println(i)
return i, "xiao ming"
}
二、函数调用
直接上代码:
func testFunc(i int) (value int, name string) {
fmt.Println(i)
return i, "xiao ming"
}
func main() {
i,name := testFunc(1)
fmt.Println(i,name)
i,_ = testFunc(2)
fmt.Println(i,name)
}
函数有可能在某一个包中,import导入某个包就可以使用里面的函数,但是GO的命名规则有些特殊。变量名,函数名,结构体名,大写是包内外都可访问,小写是只允许包内使用。切记,这与C++不同。
当函数有多个返回时,可以选择性的接收和处理。一般函数定义的最后一个返回是error接口,代表着此函数最终结果是正确,有无错误发生。当不想接收某位置的函数时使用_隐藏。
三、函数举例
写一个函数输出乘法口诀:
func testFunc() {
for i := 1; i < 10; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%d\t", i, j, i*j)
}
fmt.Println("")
}
}
func main() {
testFunc()
}
好了,这一期分享到这里,感谢大家支持。