gpt4 book ai didi

rust - 更改返回结果的函数的返回类型

转载 作者:行者123 更新时间:2023-11-29 08:33:49 26 4
gpt4 key购买 nike

我有一个功能为 sys_info::hostname 的 crate 返回主机名。唯一的问题是 hostname returns Result<String, Error> ,但我需要另一个必须具有返回类型的函数 Result<(), String> .我怎样才能调用sys_info::hostname并在不返回相同类型的函数中返回主机名?在您询问之前,由于格式问题,无法更改第二个函数的返回类型。

最佳答案

而不是使用 try!如果结果类型不兼容,则不能使用宏,请使用 match语句拆开sys_info::hostname的返回值并用它的部分做你需要做的事。 Example

struct Error;

fn thing_returning_result(succeed: bool) -> Result<String, Error> {
if succeed {
Ok("Hello".into())
} else {
Err(Error)
}
}

fn thing_returning_other_result(succeed: bool) -> Result<(), String> {
match thing_returning_result(succeed) {
Ok(s) => Err(s),
Err(_) => Err("whoopsies".into())
}
}

fn main() {
println!("{:?}", thing_returning_other_result(false));
}

关于rust - 更改返回结果的函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788915/

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