go语言学习 - 函数声明和调用

golang

函数声明

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函数。 我们可以不引入任何库包而调用一个内置函数。

1
2
print("")
println("")