function
目录
function
1 main 函数
Go 中的所有可执行程序都具有main函数, 因为它是程序的起点 你的程序中只能有一个 main() 函数。 如果创建的是 Go 包,则无需编写 main() 函数
如要访问 Go 中的命令行参数,可以使用用于保存传递到程序的所有参数的 os 包 和 os.Args 变量来执行操作。
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
number1, _ := strconv.Atoi(os.Args[1])
number2, _ := strconv.Atoi(os.Args[2])
fmt.Println("Sum:", number1+number2)
}
go run main.go 3 5
2 自定义函数
func name(parameters) (results) {
body-content
}
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
}
3 返回多个值
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
}
4 忽略返回值
_ 变量是 Go 忽略返回值的惯用方式
sum _ := calc(3, 7)
5 更改函数参数值(指针)
传值
func updateName(name string) {
name = "David"
}
updateName(firstName)
传地址
func updateName(name *string) {
*name = "David"
}
updateName(&firstName)