函数声明
func (p myType ) funcName ( a, b int , c string ) ( r , s int ) {
函数体
return 语句
}
- func 关键字
- (p myType) 表明 函数所属于的类型对象!,即为特定类型定义方法,可以省去不写,即为普通的函数 (这里我们主要讲解 普通的函数)
- 函数名
- 参数 (可以不声明)
- 返回值 (可以不声明)
- 函数体
函数调用
我们知道C++的类中有 private,public,friend,可以控制类成员可见度。并且通过命名空间来减少命名冲突。Java也是如此。
在Go语言中 和python
一样,也是采用 package
来对 不同的模块 进行划分的。
- 可以直接调用 13 个内置函数(函数全部为小写名称)
- 调用标准包中的函数 (直接导入标准包
import fmt
,通过包名 直接调用) - 调用一个自定义函数,且和主调函数在同一个包中 (直接调用即可,不用包名前缀)
- 被调用的函数 由 用户创建的包提供! (go install 生成 .a 文件,import 包名,通过包名调用)
其中第2中和第4中都是来自外部包,并且函数名称第一个字母都是大写字母,所不同的是标准包有Go提供,而用户自己创建的包由用户自己创建。
import "pcakageName"
packageName.FunctionName(参数)
第三种情况由于被掉函数 和 主调函数在同一个包中,所以直接调用即可,无需导入包名,并且函数首字母可以是小写字母 (这里,哪怕两个两个函数不在同一个文件中,只要在同一个包中即可)。
调用标准函数
Golang 提供了 大量的包和实用函数 供用户使用,这些函数被称为标准函数。常见的标准包有 fmt, math, os, time bytes
一般包名都是小写。、
标准包的消息可以在 Go安装目录的 pkg 下面查看,也可以使用godoc 查看。
- 使用一个函数前首先,导入包名
- 通过包名,调用函数
调用自定义函数
通常,一个可执行的Go程序一般都有一个 main 包,在 main包中必须声明一个 main 函数。
调用 外部包的函数
如果需要调用外部包的函数,那么需要导入这个包,才能调用相关函数(首字母必须大写)。
比如构建 mymath
包:
1. 首先建立 mymath.go 源文件:定义了四个函数 (这个源文件,必须在目录 $GOPAHT/src/mymath 下面)
package mymath
func Add(a, b int) int {
return (a + b)
}
func Sub(a, b int) int {
return (a - b)
}
func Mult(a, b int) int {
return (a * b)
}
func Div(a, b int) int {
if b != 0 {
return float32(a) / float32(b)
} else