函数声明
golang函数声明和其他语言类似,关键字为func。只要有参数和返回值就必须指定类型,一个函数可以有多个参数和返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package main
func add(a int32, b int32) (c int32) { return a + b }
func reduce(a int32, b int32) int32 { return a - b }
func square(a int64, b int64) (c int64, d int64) { c = a * a d = b * b return }
func main() {}
|
函数调用
golang函数调用和其他语言类似,用小括号扩起来,括号里面是参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package main
func add(a int32, b int32) (c int32) { return a + b }
func reduce(a int32, b int32) int32 { return a - b }
func square(a int64, b int64) (c int64, d int64) { c = a * a d = b * b return }
func main() { c := add(5, 7) e, f := square(7, 5)
print("5 + 7 = ", c, "\n") print("7,5 square is ", e, "\t", f, "\n") }
|
匿名函数
匿名函数是没有函数名的特殊函数,一个匿名函数在定义后可以被立即调用。go中所有函数都可以访问其作用域中变量,这样的函数称为闭包
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
func add(a int32, b int32) (c int32) { return a + b }
func main() { c := add(5, 7)
func(a int64, b int64) { print("a: ", a, "\n", "b: ", b, "\n") print("c: ", c, "\n") }(34, 67) }
|
内置函数
Go支持一些内置函数,比如前面的例子中已经用到过多次的println和print函数。 我们可以不引入任何库包而调用一个内置函数。