gpt4 book ai didi

rust - 有没有办法声明一个 Result 接受一个实现 FromStr 的类型作为错误?

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

我想写这样的Result:

use std::result::Result;
use std::str::FromStr;

type MyResult<T> = Result<T, FromStr>;

这是无效的。有没有办法表达这个?

最佳答案

您可以尝试将其表示为:

type MyResult<T, U: FromStr> = Result<T, U>;

但是编译器会提示:

warning: bounds on generic parameters are not enforced in type aliases
--> src/main.rs:4:21
|
4 | type MyResult<T, U: FromStr> = Result<T, U>;
| ^^^^^^^
|
= note: #[warn(type_alias_bounds)] on by default
= help: the bound will not be checked when the type alias is used, and should be removed

这意味着您不应该这样做。但是请注意,FromStr 已经包含一个 Result:

pub trait FromStr {
type Err;
fn from_str(s: &str) -> Result<Self, Self::Err>;
}

也许您应该考虑直接使用它?

关于rust - 有没有办法声明一个 Result 接受一个实现 FromStr 的类型作为错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51193702/

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