函数
func 函数名 (形参列表) (返回值类型列表) {
执行语句..
return + 返回值列表
}
- 基本跟其他语言一致,但还是如同声明变量一般,创建自定义函数仍然将函数返回值类型后置(且可以返回多个函数,但需要接收返回值的类型与位置一一对应)
包的细节详解
- package进行包的声明,建议:包的声明这个包和所在的文件夹同名
- main包是程序的入口包,一般main函数会放在这个包下。main函数一定要放在main包下,否则不能编译执行
- 打包语法:
package 包名
-
跟Java类似
-
引入包的语法:import "包的路径"。包名是从$GOPATH/src/后开始计算的,使用/进行路径分隔。
-
如果有多个包,建议一次性导入,格式就是用一个大括号括起来,然后相应的包都写到大括号里面
-
在函数调用的时候前面要定位到所在的包
-
函数名,变量名首字母大写,函数,变量可以被其它包访问
-
一个目录下不能有重复的函数
-
包名和文件夹的名字,可以不一样
-
一个目录下的同级文件归属一个包
-
同级别的源文件的包的声明必须一致
-
可以给包取别名,取别名后,原来的包名就不能使用了
-
包到底是什么:
- 在程序层面,所有使用相同 package 包名 的源文件组成的代码模块
- 在源文件层面就是一个文件夹
匿名函数
- Go支持匿名函数,如果我们某个函数只是希望使用一次,可以考虑使用匿名函数
- 匿名函数使用方式:
在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次(用的多)
- 跟其他语言的如JavaScript的箭头函数、Java的匿名函数、c/c++的lambda表达式基本一致
package main
import "fmt"
func main() {
//定义匿名函数,定义的同时调用
result := func (num1 int, num2 int) int {
return num1 + num2
} (10, 20) //直接输入参数
fmt.Println(result) //30
}