在使用Go切片時,我似乎無法將自己的頭圍繞在索引的符號上。Go切片的索引符號背後的想法是什麼?
給出片段s
。
s := []int{1, 2, 3, 4, 5}
我現在想創建一個新的切片s2 = [2 3]
。
s2 := s[1:3] // s2 = [2 3]
現在,訪問此值時我應該經歷的思考過程是什麼?我是否從索引1
開始讀取值,直到幷包括切片的第三個元素?或者,我是否正在讀取索引1
中的值,但不包括索引3
?
我不開始於索引1
和上升到索引3
和我也不是起始於1
位置和上升到位置3
作爲這兩個將導致具有3個元素s2
。
這個符號背後的想法是什麼?
你可以看到它在這裏工作 - HTTPS://play.golang。org/p/AwYUsn3mON – SRC
@SRC是的,我看到了,您對此有何疑問? 's1'是隻有一個元素的slice,'s [2]'是一個索引表達式,表示第二個(0索引)的元素,它是'3'。 – icza
也許我的榜樣選得不好。我很清楚單個值訪問和創建新片之間的區別。我其實是想知道指數背後的想法是如何工作的,因爲它看起來第一個值是一個索引,而第二個值是從1開始的元素的位置。我更新了這個問題。 – sge