根据Go之旅,在 Go 切片中s,表达式s[lo:hi]计算为从lo到的元素的切片hi-1,包括:
package main
import "fmt"
func main() {
p := []int{0, // slice position 0
10, // slice position 1
20, // slice position 2
30, // slice position 3
40, // slice position 4
50} // slice position 5
fmt.Println(p[0:3]) // => [0 10 20]
}
在我上面的代码示例中,“p[0:3]”似乎直观地“读”为:“从位置 0 到位置 3 的切片”,相当于 [0, 10, 20, 30]。但当然,它实际上等同于 [0 10 20]。
所以我的问题是:上限值评估为hi-1而不是简单的设计原理是什么hi?感觉不直观,但一定有某种原因让我失踪,我很好奇那可能是什么。
潇潇雨雨
眼眸繁星
相关分类