我有一个API,它需要&[T]
来表示一片要排序的东西.
我间接地对实际数据的索引进行排序,所以我只想要一个包含0..len
的&[usize]
作为起始值.
奇怪的是(至少对我来说)我不能用任何像这样的速记语法来实现这一点:
-
(0..len)
-类型不匹配[E0308]预期为&[usize]
,但发现为Range<usize>
-
&(0..len)
-预期为&[usize]
,实际为&Range<usize>
-
[0..len]
-类型不匹配[E0308]预期为&[usize]
,但发现为[Range<usize>; 1]
-
&*[0..len]
-错误[E0614]:无法取消引用类型[std::ops::Range<usize>; 1]
-
&[0..len]
-^预期为&usize
,实际为&Range<usize>
我能想到的最好结果是:&Vec::from_iter(0..len).as_slice()
,但这真的是实现这一点的最巧妙/最惯用的方式吗?难道没有一个功能片可以在没有分配的情况下实现这一点吗?