https://go.dev/play/p/6FTdrv2fX72
具体可以见这里, 虽然规范里有些 low==len 是合法的, 但这样做有什么意义呢? https://stackoverflow.com/questions/30208182/why-does-go-allow-slicing-from-lenslice
1
seakingii 2022-12-19 00:50:34 +08:00
你这个问题,就是"空切片"有没有意义
空切片当然有意义,就是表示这个切片有指向底层数组,但切片是空的 package main import "fmt" func main() { var s1 = "12" var s2 = "" //空字符串 var slice1 = s1[1:] //["2"] var slice2 = s1[2:] //[] 空 slice fmt.Println(s1, s2, slice1, slice2) } 比如 这个代码 空 slice 的意义就和字符串一样,你不能没有它. |
2
wangyu17455 2022-12-19 02:42:37 +08:00 via Android
有一个接口可能返回任意条数据,当没有符合条件的数据时,返回空切片还是 nil ?这不是显而易见的吗
|
3
swulling 2022-12-19 09:07:57 +08:00
不为什么,很多语言都是这样的,保持一致性而已。
就好像数组下标从零开始,你要问为什么,也没有理由。 |
4
BBCCBB OP @wangyu17455 返回空 slice 完全可以 new 一个空的 slice 去返回.
@seakingii 这个例子可以. @swulling 对,java 里的 subList fromIndex 也是可以等于 size |