我知道,你可以通過安全得到一個切片的第圍棋
test := []int{0, 1, 2, 3, 4}
subsection := test[:2]
獲得圍棋的一個切片的第但是,如果你嘗試類似
subsectionError := test[:10]
你會得到超出界限的錯誤。目前我正在做類似
length := 10
if len(test) < length {
length = len(test)
}
safeSubsection := test[:length]
爲了避免這個錯誤,但是有沒有更好的方法來做到這一點?對我來說,這感覺很尷尬,但是一般來說,Go似乎是一個非常明確的語言。
恕我直言,這是在去做的方式。否則,「更好」,「哈克」,聽起來像你正在捕魚的東西,這主要是基於意見的。 – Krom
如何檢查你是否正在訪問內存越界「哈克」?這是作爲內存安全語言的一部分,不依賴於SIGSEGV來表明你不應該訪問這些地址。 – JimB
這也是一種罕見的情況,您需要某個切片的切片,但不知道或不在意原始切片的長度或切片的長度是否與您請求的長度相同。我猜這是截斷一個字符串,在這種情況下,我會使用'fmt.Sprintf'而不是切片。 – Adrian