0: 关键字func 用于定义一个函数
1: 函数可以绑定到特定的类型上。这叫做接收者。有接收者的函数被称作method
2: funcname 是你函数的名字
3: int 类型的变量q 作为输入参数。参数用pass-by-value 方式传递,意味着它们会被复制
4: 变量r 和s 是这个函数的命名返回值。在Go 的函数中可以返回多个值。
5: 这是函数体。注意return 是一个语句,所以包裹参数的括号是可选的
一个局部变量与一个全局变量有相同的名字,在函数执行的时候,局部变量将覆盖全局变量。
如果是函数能新定义的变量,全局变量的值不会更改
多值返回
命名返回值,命名结果会被初始化并且关联于无修饰的return
延迟代码 defer关键字,指定的函数在推出前调用,并且遵循的后进先出的 LIFO 的原则执行
变参 func xxx(arg, ...int) {}
回调函数 func callback(y int, f func(int)){f(y)}
package 包名小写
包内大写字母起始的函数名是可导出的,在包外可以调用,小写的就是私有函数
常用的包
fmt 格式化
io 原始os包进行封装
bufio 缓冲io
sort 数组和自定义集合的排序功能
strconv 字符串转化
sync 互斥锁
net/http 实现了HTTP请求、响应和URL解析