Go 中的切片:避免越界錯誤
切片允許我們透過指定索引範圍從現有切片建立新切片。但是,如果指定的範圍超出了原始切片的邊界,則可能會發生越界錯誤。
在提供的程式碼中,行 c := b[1:] 嘗試建立一個新的切片從切片 b 切片 c。發生錯誤的原因是沒有明確指定 c 的上限索引,預設為 b 的長度,即 0。
Go 中切片的一般形式為:
subslice := original[start:end]
如果省略 start,則預設為 0。如果省略 end,則預設為 len(original)。
對於切片,索引上界受切片容量 (cap()) 限制,而非其長度 (len())。這意味著如果我們指定的結束索引大於 cap(original),它仍然被認為是有效的。但是,如果我們指定的結束索引大於 len(original),就會出現越界錯誤。
為了避免這個錯誤,我們需要確保指定的範圍不會超出範圍原始切片。在範例程式碼中,我們可以透過明確指定索引上限來解決該問題:
c := b[1:2]
這將建立一個長度為1、容量為4 的切片c,包含索引1 處的元素切片b .
以上是Go中切片時如何防止越界錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!