函数
更新于 2021-08-30
关键字
函数定义
- fun:关键字
fun定义函数
- name:函数名
- parameters:函数参数,可以有0个或多个
- results:函数返回值,可以有0个或多个
| Go |
|---|
| func name(parameters) (results) {
body-content
}
|
| Go |
|---|
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
import (
"os"
"strconv"
)
func main() {
sum := sum(os.Args[1], os.Args[2])
println("Sum:", sum)
}
func sum(number1 string, number2 string) int {
int1, _ := strconv.Atoi(number1)
int2, _ := strconv.Atoi(number2)
return int1 + int2
}
//或者另一种形式
func sum(number1 string, number2 string) (result int) {
int1, _ := strconv.Atoi(number1)
int2, _ := strconv.Atoi(number2)
result = int1 + int2
return
}
|
多返回值
| Go |
|---|
| func calc(number1 string, number2 string) (sum int, mul int) {
int1, _ := strconv.Atoi(number1)
int2, _ := strconv.Atoi(number2)
sum = int1 + int2
mul = int1 * int2
return
}
|
如果不需要函数的某个返回值,可是用匿名变量_
| Go |
|---|
| func main() {
sum, _ := calc(os.Args[1], os.Args[2])
println("Sum:", sum)
}
|
不定长参数
| Go |
|---|
| func test(args ...int) {
for _, arg : rangd args {
fmt.Println(arg)
}
}
|
匿名函数
func关键字后无函数名
此类函数可以获取外层函数里的变量
函数变量
| Go |
|---|
| func test(a int) int{ //do something}
new_f := test
//定义函数变量
var f func() int
|
main函数
- 程序中只能有一个main函数
- 如果是Go包,则无需编写main函数
- main函数没有参数(使用os包获取参数)
- main函数没有返回值
| Go |
|---|
1
2
3
4
5
6
7
8
9
10
11
12 | package main
import (
"os"
"strconv"
)
func main() {
number1, _ := strconv.Atoi(os.Args[1])
number2, _ := strconv.Atoi(os.Args[2])
println("Sum:", number1+number2)
}
|
内置函数
| 函数名 |
| make |
| len |
| cap |
| new |
| append |
| copy |
| close |
| delete |
| complex |
| real |
| image |
| panic |
| recover |