golang基础(23.函数的基本调用和定义)
在 Go 语言中,函数的基本组成为:关键字 func、函数名、参数列表、返回值、函数体和返回语句,作为强类型语言,无论是参数还是返回值,在定义函数时,都要声明其类型。函数主要分为三种类型
- 普通函数
- 匿名函数
- 类型系统方法
函数定义
func add(a, b int) int {
return a + b
}
如果函数的参数列表中包含若干个类型相同的参数,比如上面例子中的 a 和 b,则可以在参数列表中省略前面变量的类型声明,只保留最后一个。
函数调用
函数调用非常方便,如果是在同一个包中(即定义在同一个目录下的 Go 文件中),只需直接调用即可:
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
fmt.Println(add(1, 2))
}
需要先导入了该函数所在的包,然后才能调用该函数,比如,我们将 add 函数放到单独的 mymath 包中(函数名首字母改为大写):
package mymath
func Add(a, b int) int {
return a + b
}
然后我们可以这样在 main 包中调用 Add 函数:
package main
import (
"fmt"
"mymath"
)
func main() {
fmt.Println(mymath.Add(1, 2)) // 3
}
在跨包调用时,只有首字母大写的函数才可以被调用,这个涉及到包的可见性,后面在介绍面向对象时会详细讨论这个,这里你只需要了解首字母大写的 Go 函数即相当于其它语言的 public 函数,Go 语言中没有 public、protected、private 之类的关键字,它是通过首字母的大小写来区分可见性:首字母小写的函数只能在同一个包中访问,首字母大写的函数才可以在其他包中调用,Go 文件中定义的全局变量也是如此。