函数定义

函数是基本的代码块。
Go是编译型语言,函数编写的顺序是无关紧要的;鉴于可读性的需求,最好把 main() 函数写在文件的底部,类似于C语言的习惯。

Go 语言函数定义格式如下:

1
2
3
func function_name( [parameter list] ) [return_types] {
函数体
}
  • func:函数声明关键字,函数由 func 开始声明
  • function_name:函数名称,参数列表和返回值类型构成了函数签名。
  • parameter list:参数列表。
  • return_types:返回类型,函数返回一列值。
    return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
  • 函数体:函数定义的代码集合。

Go 里面拥三种类型的函数

  • 普通函数
  • 匿名函数或者lambda函数
  • 方法(Methods)
    说下方法,确实有这种类型。go是为了兼容面向对象的特性,实现了方法这种特性。

调用示例

1
2
3
4
5
6
7
8
9
10
package main

func main() {
getTest()
println("main")
}

func getTest() {
println("test")
}

带入参返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main

import "fmt"

func main() {
/* 定义局部变量 */
var a int = 100
var b int = 200
var ret int

/* 调用函数并返回最大值 */
ret = max(a, b)

fmt.Printf( "最大值是 : %d\n", ret )
}

/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
/* 定义局部变量 */
var result int

if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}