gpt4 book ai didi

rust - 返回向量的第一项

转载 作者:行者123 更新时间:2023-11-29 08:04:01 24 4
gpt4 key购买 nike

我正在尝试编写一个返回向量第一个元素的速记函数:

pub fn first() -> Option<&T> {
let v = Vec::new();
v.first()
}

当然失败了:

error: missing lifetime specifier [E0106]

有什么方法可以让它工作吗?

最佳答案

不在当前状态..不。

基本上,当 first() 返回这里时,v 被丢弃。这使得从函数返回一个引用变得不安全,因为现在引用指向一个 void。

一个选项是传入向量并返回对第一个项目的引用:

fn main () {
let v = vec![1,2,3,4];

println!("{:?}", first(&v).unwrap()); // Prints 1
}

fn first<T>(v: &Vec<T>) -> Option<&T> {
v.first()
}

虽然这似乎是多余的,所以在不知道您要做什么的情况下这似乎是一个不错的选择。

如果你扩展你的问题,我会扩展我的答案。

关于rust - 返回向量的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com