struct Foo(i32);
fn print_foo(xs: &[Foo]){
for i in xs{
println!("{}", i.0);
}
}
fn main() {
let xs = [Foo(1), Foo(2), Foo(3)];
// need do something in this line to conert xs to &[Foo]
print_foo(xs); // error: expected &[Foo] but found [Foo; 3]
}
变量xs
需要转换为&[Foo]
,但搜索没有给出正确答案。
答案 0 :(得分:3)
如果你引用它(&xs
),你会得到&[Foo; 3]
类型的东西,它可以自由地强制转换为动态大小的切片&[Foo]
。
答案 1 :(得分:0)
print_foo(&xs);
顺便说一下,&[Foo]
不是动态数组;它是切片。切片是数组的视图。