為什麼 Go 中的切片語法排除高邊界(hi)?
Go 切片語法 s[lo:hi] 指定一個元素範圍從索引 lo(包含)到 hi-1(不包含)。這與 hi 將包含在該範圍內的直覺預期不同。
設計原理
獨佔切片的選擇是一個約定問題,並具有以下幾個優點:
-
指針算術簡單性: 在Go 中,切片本質上是具有相關長度的指標。對於 0 索引數組和獨佔切片,元素 i 的位址只是指標值加上 i。
-
方便的陣列長度: 切片的長度也是它的「分割點」。 」這意味著arr[0:len(arr)] 等價於arr,方便進行數組分割等操作。
-
非重疊索引: 獨佔切片確保連續的切片完全覆蓋原始數組。 lo 和 hi - 會導致切片重疊並使某些操作複雜化.
以上是為什麼 Go 的切片語法排除上限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!