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