目录

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)