traits 相关问题

在计算机编程中,特征是一组方法,用作“构建面向对象程序的简单概念模型”

Symfony6-可时间戳的学说扩展:特征有效,但属性无效

我尝试使用 StofDoctrineExtension 制作带时间戳的实体。不幸的是,我发现使用特征可以完美地工作,但不能使用属性。 有人可以告诉我我做错了什么吗? 这有效...

回答 2 投票 0

在特征中使用异步时如何解决“不透明类型`impl Future<Output = Self>`不满足其关联类型边界”警告?

我从以下代码中收到警告: 特质 AsyncClient { async fn new(主机: &str, 端口: u16) -> Self; } 警告:不透明类型 `impl Future` 不满足其

回答 1 投票 0

为什么 BitVec 缺少序列化特征?

为了熟悉 Rust,我自己编写了一个由 BitVec 支持的布隆过滤器。其中一部分将包括一个 save 方法,该方法使用 serde 和 w 序列化整个结构......

回答 1 投票 0

Rust:编译器告诉我 BitVec 缺少序列化特征?

您可能会从下面的问题中看出,我对 Rust 作为一门语言还很陌生。作为一种“Hello World”,我承担了用 ru 编写布隆过滤器的任务......

回答 1 投票 0

PHP 特性 - 更改继承类中静态属性的值

所以,这就是我的特点: 特征可缓存 { 受保护静态 $isCacheEnabled = false; 受保护的静态$cacheExpirationTime = null; 公共静态函数 isCacheEnabled() {

回答 4 投票 0

Rust 添加绑定到借用类型

有没有一种方法可以借用类型并在内部类型上添加特征绑定(即您有类型 &T 但想要说出 T 的位置) 我以为我可以要求 &T 拥有 ToOwned...

回答 1 投票 0

特质实现冲突

我正在学习 Rust,并且很难将我的 C++ 架构思维方式转变为 Rust 架构世界。目前,我正在努力定义特征的通用功能以避免代码重复...

回答 1 投票 0

生锈柴油协会和可识别给出“使用未申报的板条箱或模块”错误

我有这个结构: #[derive(可查询、关联、可识别)] #[柴油(属于(用户))] #[柴油(属于(任务))] pub 结构 UserTask{ 酒吧 ID:i32, 酒吧用户id:i32, 酒吧任务 ID:...

回答 1 投票 0

尽管在特征范围内使用,但特征中的类型不受约束?

我有这个片段: 使用 std::fmt::调试; 使用 std::ops::Index ; 使用 len_trait::Len; pub 特征容器:默认 + 调试 + 克隆 { 类型索引类型; 类型 ValueType:默认 + 克隆; ...

回答 1 投票 0

如何使用 laravel 5.1 更新记录的 user_id 来填充 Modified_by?

使用 Laravel 5.1 时,我尝试创建一个观察者,它会自动更新以下 3 列 created_by:当创建的记录“不再更新”时填充 修改_...

回答 3 投票 0

需要 Sized 的特征与无法拥有该特征的特征对象有什么关系?

我有这个代码(游乐场): 特征 NodeLike:大小 {} fn 主() { 让 s: Box = 恐慌!(); } 哪个不编译: 错误[E0038]:特征 `NodeLike` 无法制作成

回答 2 投票 0

xUnit - 从 dotnet test CLI 执行时如何选择单个理论

假设我有一个测试: [理论] [内联数据(“一”)] [内联数据(“两个”)] 公共无效ShouldSelectSingleTheoryFromDotnetTest(字符串s) { 断言.True(true); } 我想要...

回答 2 投票 0

与通用边界相冲突的特征,但并非没有潜在的“下游”实现

请原谅这里有大量的代码,但是最小的示例很难解释,我试图使其尽可能短。我正在尝试在通用类型上实现通用特征,并带有

回答 1 投票 0

抽象特征中的“检查可见性时检测到循环”

我试图让工作成为一种依赖于多个层面的其他抽象特征的特征。我遇到了这个错误: 错误[E0391]:检查有效可见性时检测到循环 | 注意:...

回答 1 投票 0

无法理解Rust模块系统

我创建了一个用于教育目的的简单项目,所以我有一个主要功能和3个特征电池、显示和GSM以及它们的实现。我希望 main 函数位于文件 main.rs ...

回答 2 投票 0

如何在具有不同类型变体的枚举上实现索引?

我正在尝试在我的枚举上实现索引,以便我可以按照为自定义类型实现切片来获取它的切片(具有切片内部值的相同变体的枚举)。但因为我的枚举有

回答 1 投票 0

如何在 Rust 中定义任一/或特征边界

我有以下标记特征和一些定义: 特质 HasProperty {} 结构属性1; 结构属性2; struct WithProperty {} 我想实现以下目标... 我有以下标记特征和一些定义: trait HasProperty<P> {} struct Property1; struct Property2; struct WithProperty<P, Tail> {} 我想实现以下目标: fn check::<P, T>(token: T) where T: HasProperty<P> {} fn test() { let token1 = WithProperty<Property1, WithProperty<Property2, ()>>; let token2 = WithProperty<Property1, ()>; check::<Property1>(token1); // should compile check::<Property2>(token1); // should compile check::<Property1>(token2); // should compile check::<Property2>(token2); // should fail with "WithProperty<Property1, ()> does not implement HasProperty<Property2>" } 但是我不明白如何实现WithProperty的特质一致性。由于特征定义重叠,以下内容不起作用: impl<P, Tail> HasProperty<P> for WithProperty<P, Tail> {} impl<P, P2, Tail> HasProperty<P> for WithProperty<P2, Tail> where Tail: HasProperty<P> {} 我在 Yew 中发现以下内容解决了同样的问题,但我无法理解它是如何工作的:https://github.com/yewstack/yew/blob/master/packages/yew/src/html/component /properties.rs. 要理解yew解决方案,最好要求编译器转储宏扩展的 AST。这样您就可以准确地看到生成的结构和特征是什么。 我不知道这是否正是在yew中的工作原理,但类似的东西是有效的,也许一些丑陋的部分可以隐藏在宏中: use std::marker::PhantomData; trait HasProperty<P, How> {} struct Property1; struct Property2; struct WithProperty<P, Tail>(PhantomData<P>, Tail); fn with<P, Tail>(t: Tail) -> WithProperty<P, Tail> { WithProperty(PhantomData, t) } fn check<P, How>(token: &impl HasProperty<P, How>) {} struct Directly; impl<P, Tail> HasProperty<P, Directly> for WithProperty<P, Tail> {} struct Step<N>(N); impl<P, P2, Tail, N> HasProperty<P, Step<N>> for WithProperty<P2, Tail> where Tail: HasProperty<P, N> {} fn main() { let token1 = with::<Property1, _>(with::<Property2, _>(())); let token2 = with::<Property1, _>(()); check::<Property1, _>(&token1); // compiles check::<Property2, _>(&token1); // compiles check::<Property1, _>(&token2); // compiles // check::<Property2, _>(&token2); // fails with "the trait bound `(): HasProperty<Property2, _>` is not satisfied" } 这两个 HasProperty 实现并不重叠,因为它们是针对两个不同的 struct 实现的。 Step 是一个(类似链表的)包装器,指示该属性存在,并且发现 N 会进入 WithProperty 嵌套。 如果你写的是: with::<Property1, _>(with::<Property2, _>(with::<Property1, _>(()))) 然后 check 调用会抱怨多个可能的 impl。我不知道yew是否能更优雅地处理这个问题。

回答 1 投票 0

定义采用更高级类型泛型的特征

我想在 Rust 中定义一个特征,它有一个泛型类型参数 - 例如,在特征级别上的 BorrowedValue,以及一个生命周期参数,例如在其方法级别上的“a”。复杂的是...

回答 1 投票 0

无法将记录器向下转换回原始结构

我想访问我的 log::Log impl 实例以便访问特定字段,但是一旦我收到引用,我就无法将其向下转换为我的结构。 我尝试转换记录器引用...

回答 1 投票 0

共享在 Rust 中实现 Trait 的对象

我有一个对象特征,可以从某个索引提供字节。这些可能是文件、正在跟踪的进程、其他字节提供程序上的缓存等: 使用 std::结果::结果; 使用 std::io::Error ;

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.