<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                命名返回值 `"_" `標識符,用來忽略函數的某個返回值 Go 的返回值可以被命名,并且就像在函數體開頭聲明的變量那樣使用。 返回值的名稱應當具有一定的意義,可以作為文檔使用。 沒有參數的 return 語句返回各個返回變量的當前值。這種用法被稱作“裸”返回。 直接返回語句僅應當用在像下面這樣的短函數中。在長的函數中它們會影響代碼的可讀性。 ~~~ package main import ( "fmt" ) func add(a, b int) (c int) { c = a + b return } func calc(a, b int) (sum int, avg int) { sum = a + b avg = (a + b) / 2 return } func main() { var a, b int = 1, 2 c := add(a, b) sum, avg := calc(a, b) fmt.Println(a, b, c, sum, avg) } ~~~ 輸出結果: ~~~ 1 2 3 3 1 ~~~ Golang返回值不能用容器對象接收多返回值。只能用多個變量,或 "_" 忽略。 ~~~ package main func test() (int, int) { return 1, 2 } func main() { // s := make([]int, 2) // s = test() // Error: multiple-value test() in single-value context x, _ := test() println(x) } ~~~ 輸出結果: ~~~ 1 ~~~ 多返回值可直接作為其他函數調用實參。 ~~~ package main func test() (int, int) { return 1, 2 } func add(x, y int) int { return x + y } func sum(n ...int) int { var x int for _, i := range n { x += i } return x } func main() { println(add(test())) println(sum(test())) } ~~~ 輸出結果: ~~~ 3 3 ~~~ 命名返回參數可看做與形參類似的局部變量,最后由 return 隱式返回。 ~~~ package main func add(x, y int) (z int) { z = x + y return } func main() { println(add(1, 2)) } ~~~ 輸出結果: ~~~ 3 ~~~ 命名返回參數可被同名局部變量遮蔽,此時需要顯式返回。 ~~~ func add(x, y int) (z int) { { // 不能在一個級別,引發 "z redeclared in this block" 錯誤。 var z = x + y // return // Error: z is shadowed during return return z // 必須顯式返回。 } } ~~~ 命名返回參數允許 defer 延遲調用通過閉包讀取和修改。 ~~~ package main func add(x, y int) (z int) { defer func() { z += 100 }() z = x + y return } func main() { println(add(1, 2)) } ~~~ 輸出結果: ~~~ 103 ~~~ 顯式 return 返回前,會先修改命名返回參數。 ~~~ package main func add(x, y int) (z int) { defer func() { println(z) // 輸出: 203 }() z = x + y return z + 200 // 執行順序: (z = z + 200) -> (call defer) -> (return) } func main() { println(add(1, 2)) // 輸出: 203 } ~~~ 輸出結果: ~~~ 203 203 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看