< 返回版块

Snowmanzzz 发表于 2023-01-30 10:55

评论区

写评论
regomne 2023-02-01 14:59

你都超范围了不崩还等什么呢,等上到生产环境再因为某些莫名其妙的原因boom么?

--
👇
shanliu: rust 的[..]有点坑,超范围就panic 还是用迭代器方式靠谱点。

hax10 2023-01-30 22:47

没错,只不过官方文档提了数组切片的例子,我当时直接把它复制粘贴过来了。

-- 👇 shanliu: rust 的[..]有点坑,超范围就panic 还是用迭代器方式靠谱点。

github.com/shanliu/lsys 2023-01-30 21:30

rust 的[..]有点坑,超范围就panic 还是用迭代器方式靠谱点。

--
👇
hax10: 这种语法能定义一个数组的一部分,比如

let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[1..], [1, 2, 3, 4]);
assert_eq!(arr[1..3], [1, 2]);
assert_eq!(arr[1..=3], [1, 2, 3]); // This is a `RangeToInclusive`

1.. 会覆盖第1到最后一个元素(不包含第0元素) 1..3 会覆盖第1到第3元素(不含第3) 1..=3 即你提的写法,会覆盖第1到第第3元素(含第3)

另外,参考一下一楼发的官方说明文档。

hax10 2023-01-30 11:08

这种语法能定义一个数组的一部分,比如

let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[1..], [1, 2, 3, 4]);
assert_eq!(arr[1..3], [1, 2]);
assert_eq!(arr[1..=3], [1, 2, 3]); // This is a `RangeToInclusive`

1.. 会覆盖第1到最后一个元素(不包含第0元素) 1..3 会覆盖第1到第3元素(不含第3) 1..=3 即你提的写法,会覆盖第1到第第3元素(含第3)

另外,参考一下一楼发的官方说明文档。

7sDream 2023-01-30 10:59
1 共 5 条评论, 1 页