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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 另一個 usafe 包的例子 在這一節,你會了解到更多關于 unsafe 庫的東西,以及通過一個 moreUnsafe.go 的小程序來了解 unsafe 庫的兼容性。moreUnsafe.go 做的事情就是使用指針來訪問數組里的所有元素。 ```Go package main import ( "fmt" "unsafe" ) func main() { array := [...]int{0, 1, -2, 3, 4} pointer := &array[0] fmt.Print(*pointer, " ") memoryAddress := uintptr(unsafe.Pointer(pointer)) + unsafe.Sizeof(array[0]) for i := 0; i < len(array)-1; i++ { pointer = (*int)(unsafe.Pointer(memoryAddress)) fmt.Print(*pointer, " ") memoryAddress = uintptr(unsafe.Pointer(pointer)) + unsafe.Sizeof(array[0]) } ``` 首先,`pointer`變量指向`array[0]`的地址,`array[0]`是整型數組的第一個元素。接下來指向整數值的`pointer`變量會傳入`unsafe.Pointer()`方法,然后傳入`uintptr`。最后結果存到了`memoryAddress`里。 `unsafe.Sizeof(array[0])`的值使你可以進入數組的下一個元素,因為這是每個數組元素占用的內存。因此,該值將在 for 循環的每次迭代中添加到`memoryAddress`變量中,從而使你可以獲取下一個數組元素的內存地址。 `*pointer`表示法取消引用指針并返回存儲的整數值。 第三部分代碼: ```Go fmt.Println() pointer = (*int)(unsafe.Pointer(memoryAddress)) fmt.Print("One more: ", *pointer, " ") memoryAddress = uintptr(unsafe.Pointer(pointer)) + unsafe.Sizeof(array[0]) fmt.Println() ``` 在最后一部分中,我們嘗試使用指針和內存地址訪問數組中不存在的元素。由于使用了`unsafe`包,Go 編譯器無法捕獲此類邏輯錯誤,因此將返回不正確的內容。 執行`moreUnsafe.go`將會輸出: ```shell $ go run moreUnsafe.go 0 1 -2 3 4 One more: 824634208008 ``` 你剛剛使用指針訪問了 Go 數組的所有元素。但是,這里的真正問題是,當你嘗試訪問無效的數組元素時,程序沒有拋出錯誤,而是返回了一個隨機數。
                  <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>

                              哎呀哎呀视频在线观看