Go 语言使用函数

Posted 小伍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 语言使用函数相关的知识,希望对你有一定的参考价值。

定义函数

func test(a int, b int, c string) (int, string, bool) {
    return a + b, c, true
}

func main() {
    v1, s1, _ := test(10, 20, "hello")
    fmt.Println("v1:", v1, ", s1:", s1)
}

或者

func test(a, b int, c string) (res int, str string, bl bool) {
    res = a + b
    str = c
    bl = true
    return
}

func main() {
    v1, s1, _ := test(10, 20, "hello")
    fmt.Println("v1:", v1, ", s1:", s1)
}

单个返回值可以不使用括号

func test() int {
    return 10
}

指针内存逃逸

func main() {
    res := testPtr()
    fmt.Println("city:", *res)
}

// 返回一个string类型的指针
func testPtr() *string {
    // name 不会逃逸
    name := "张三"
    ptrn := &name
    fmt.Println("*ptrn:", *ptrn)
    
    // city 会逃逸,因为需要在函数外使用
    city := "广州"
    ptrc := &city
    return ptrc
}
# 编译查看堆栈详情
go build -o test.exe --gcflags "-m -m -l" test.go

以上是关于Go 语言使用函数的主要内容,如果未能解决你的问题,请参考以下文章

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

Go语言中的函数

Go语言中的函数

Go语言学习-函数

Go语言基础之函数

golang/go语言go语言中包的使用Init()函数协程和接口