#![feature(array_methods)]
#![feature(fixed_size_array)]
fn main() {
foo();
bar();
}
fn foo<'a>() -> &'a [i32] {
return &[1,2,3];
}
fn bar<'a>() -> &'a [i32] {
return goob().as_slice();
}
fn goob() -> [i32; 3] {
return [1,2,3];
}
为什么 foo 运行良好,但 bar 导致编译错误。两者都从临时创建的数组中返回一个切片。