/ 2018-12-03
函数是基本的代码块,用于执行一个任务。
Go语言函数特点:
1、关键字func用来声明一个函数funcName;
2、函数可以有一个或者多个参数,每个参数后面带有类型,通过逗号(,)分隔;
3、函数可以返回多个值;
4、返回值可以使用声明变量,如果不想声明也可以直接使用返回值的类型;
5、如果只有一个返回值且不声明返回值变量,那么你可以省略 包括返回值 的括号;
6、如果没有返回值,可以直接省略最后的返回信息;
7、如果有返回值, 必须在函数的外层添加return语句,否则会引发编译错误;
8、函数也是一种类型,一个函数可以赋值给变量,可作为参数传递;
9、函数不支持嵌套,一个包不能有两个名字一样的函数。不支持重载,不支持 默认参数
函数定义
第一种,定义一个无参数,无返回值的函数
func funcName() { }
第二种,定义一个参数,无返回值的函数
func Print(str string) { println(str) }
第三种,定义多个参数的函数,一个返回值的函数
func sum(x, y int) int { return x + y }
第四种,定义一个多返回值的函数
func oldboy(str string) (ret string, err error) { if str == "Go" { return "老男孩IT教育,只培养技术精英。", nil } return "", errors.New("error") }
第五种,返回值只有类型,无变量声明函数
func oldboy(str string) (string, error) { if str == "Go" { return "老男孩IT教育,只培养技术精英。", nil } return "", errors.New("error") }
函数类型
第一种,定义一个无参数,无返回值的函数类型
type funcType func()
第二种,定义一个参数,无返回值的函数类型
type funcType func(string)
第三种,定义多个参数的函数,一个返回值的函数类型
type funcType func(x, y int) int
第四种,定义一个多返回值的函数类型
type funcType func(string) (string, error)
(8)