gpt4 book ai didi

Rust 特征别名

转载 作者:行者123 更新时间:2023-12-03 11:28:57 24 4
gpt4 key购买 nike

我正在做一个 Actor 项目,这个项目需要特征的别名,因为它太长了,但即使有夜间功能#![feature(trait_alias)]似乎无法实现。

简而言之,我写了一个 Playground :我想要别名 A<T>更短导致我在 A 上有很多通用类型在真实情况下;同时我想访问 type Output = Self;从它的实现 B .感谢您的帮助。

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=5a9bb8d3f76112c0b73ea1da8af34959

#![feature(trait_alias)]

trait A<T> {
type Output;
fn test(a: T) -> Self::Output;
}

//To alias the trait, real situation longer than this.
//attempt 1:
trait B: A<String>{}

//attempt 2:
//trait B : A<String, Output=Self> where Self: std::marker::Sized {}
//impl<T> B for T where T: A<String, Output=T> {}

//attempt 3 with trait_alias:
//trait B = A<String>;

struct SA;

impl B for SA {
type Output = Self;
}

最佳答案

特质别名只是意味着:

used wherever traits would normally be used as either bounds or trait objects. Source

所以,你的用例不匹配,你不能那样做。

关于Rust 特征别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62144807/

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