以下代码进行编译:
fn main() {
let slices:&[i32] = &[1,2,3];
let subSlice = &slices[1..3];
print!("{:?}\n",subSlice);
}
但这失败了:
fn main() {
let slices:&[i32] = &[1,2,3];
let subSlice = slices[1..3];
print!("{:?}\n",subSlice);
}
Compiling playground v0.0.1 (/playground)
error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
--> src/main.rs:3:9
|
3 | let subSlice = slices[1..3];
| ^^^^^^^^ doesn't have a size known at compile-time
slices
已经是用&
创建的切片/引用(&[i32]
).为什么我必须在&slices[1..3]
中再次使用&
?