<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 可變參數與內置函數 > 這塊道理太多就不寫了,講的就是內置函數里面,可變參數 ### 可變參數的傳遞 ``` package main import "fmt" // 可變參數改成 切片 // func add(slices []int) func add(slices ...int) { sum := 0 fmt.Println("傳入的切片變量", slices) // 傳入的切片變量 [1 2 3 4 5 6 7 8 9 10] for _, value := range slices { // "_" 這個是可變參數 sum += value } fmt.Println(sum) // 55 } func addll(num ...int) { add(num...) //add(num) } func main() { addll(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) } ``` ### 匿名函數和閉包 ``` func (參數列表) (返回參數列表) { 函數體 } ``` 定義并調用函數 ``` package main import "fmt" func main() { // 匿名函數后 添加"()" 傳入實參 func(data string) { fmt.Println("Hello " + data) }("world") // Hello world } ``` 將匿名函數賦值給變量 ``` package main import "fmt" func main() { result := func(data string) { fmt.Println("Hello " + data) // Hello world } result("world") } ``` 閉包 > **下面案例結構,同一函數環境內的匿名函數,修改變量不會改變地址,據說匿名函數形成了閉包,算引用?** ``` package main import "fmt" func main() { num := 1 fmt.Println("num值,地址", num, &num) // num值,地址 1 0xc000012098 func() { num++ fmt.Println("num值,地址", num, &num) // num值,地址 2 0xc000012098 }() func() { num++ fmt.Println("num值,地址", num, &num) // num值,地址 3 0xc000012098 }() } ``` ``` package main import "fmt" func add(i int) (adds int) { addes := func() int { i++ return i } adds = addes() return adds } func main() { a1 := add(0) // 0+1=1 a2 := add(10) // 10+1=11 fmt.Println("a1值,閉包地址", a1, &a1) fmt.Println("a2值,閉包地址", a2, &a2) } 結果: a1值,閉包地址 1 0xc000012098 a2值,閉包地址 11 0xc0000120b0 ``` 閉包這玩意,我也不是很懂,道理多。但是我操作下來發現,函數環境不同,閉包修改變量的值會影響地址。
                  <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>

                              哎呀哎呀视频在线观看