gpt4 book ai didi

rust - 如何使用Option::或引用Option?

转载 作者:行者123 更新时间:2023-12-03 11:40:33 29 4
gpt4 key购买 nike

我有以下几点:

fn foo(f: &Option<Huge>) {}

fn bar(a: &Option<Huge>, b: &Option<Huge>) {
foo(a.or(b));
}
Huge是一些我不想复制或克隆的大结构。这不起作用,因为 .or()按值接受 ab

有一个简单的解决方案吗?我可能可以做这样的事情:
foo(if a.is_some() { a } else { b });

当然有更好的方法吗?

最佳答案

&Option<T>几乎从来都不是有用的类型,但可以是converted to Option<&T> using as_ref

这意味着以下代码有效:

fn foo(f: Option<&Huge>) {}

fn bar(a: Option<&Huge>, b: Option<&Huge>) {
foo(a.or(b));
}

关于rust - 如何使用Option::或引用Option?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60971041/

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