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)
}

單個返回值能夠不使用括號ui

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
相關文章
相關標籤/搜索