首页 > 解决方案 > 返回生锈的切片

问题描述

#![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 导致编译错误。两者都从临时创建的数组中返回一个切片。

标签: rustsliceborrow-checkerborrowingborrow

解决方案


推荐阅读