traits 相关问题

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

如何确保我的类型实现自动特征?

假设我有一个如下结构: 结构体 Foo { foo:盒子, } 与 Copy 等可选择加入的自动特征不同,我无法将 #[derive(Send) 添加到我的结构中以要求编译器选择加入...

回答 2 投票 0

如何确保我的类型实现自动特征?

假设我有一个如下结构: 结构体 Foo { foo:盒子, } 与像 Copy 这样选择加入的自动特征不同,我无法将 #[derive(Send) 添加到我的结构中以要求编译器选择加入,并且

回答 1 投票 0

是否可以创建一个设置元属性的属性特征?

我尝试创建一个属性特征。用例是在对象到文档映射的上下文中将类的某些属性标记为“可修改”,而其他属性则不是。 角色粗略{ 有布尔$。

回答 1 投票 0

javascript 中的特征 [已关闭]

如何在 javascript 中实现特征?

回答 3 投票 0

将空列表传递给采用特征迭代器的函数

我有一些代码需要接受数据结构列表,这些数据结构可以是多种不同类型中的任何一种,但都实现了 Into。所以,我说参数是 impl

回答 1 投票 0

如果类型满足条件,我可以创建默认特征实现吗?

是否可以为特征 TraitB 的函数/方法 fun_b 定义默认实现,以防特征 TraitA 也被实现? 下面我定义了一个额外的特征 TraitBDerived 与

回答 1 投票 0

在带有泛型参数的函数中使用具体类型时如何处理“预期类型参数,找到结构”错误?

我一直在使用 Rust 搞乱特征,并且遇到了一个问题。这是一些代码: 结构 Foo; 特质栏{} 为 Foo {} 实现 Bar fn 条(条:B){} fn 巴尔 我一直在使用 Rust 搞乱特征,并且遇到了一个问题。这是一些代码: struct Foo; trait Bar {} impl Bar for Foo {} fn bar<B: Bar>(bar: B) {} fn barr<B: Bar>() { bar(Foo); // 1. THIS WILL WORK let foo: B = Foo; // 2. THIS WILL NOT WORK let foo_vec: Vec<B> = vec![Foo]; // 3. THIS WILL NOT WORK } 这会产生错误: error[E0308]: mismatched types --> src/main.rs:11:18 | 11 | let foo: B = Foo; // 2. THIS WILL NOT WORK | ^^^ expected type parameter, found struct `Foo` | = note: expected type `B` found type `Foo` error[E0308]: mismatched types --> src/main.rs:12:32 | 12 | let foo_vec: Vec<B> = vec![Foo]; // 3. THIS WILL NOT WORK | ^^^ expected type parameter, found struct `Foo` | = note: expected type `_` found type `Foo` 为什么#2 和#3 不起作用?我怎样才能让编译器知道 Foo 实际上有 Bar impl? 另一个例子: struct Foo<B: Bar> { bar: Option<B>, } struct Foo2; trait Bar {} impl<B: Bar> Bar for Foo<B> {} impl Bar for Foo2 {} fn bar<B: Bar>(bar: B) {} fn circle_vec<B: Bar>() { bar(Foo2); // 1. WORKS Foo { bar: Some(Foo { bar: None }) }; // 2. WILL NOT WORK } 这会给我这个错误: error[E0282]: type annotations needed --> src/main.rs:17:21 | 17 | Foo { bar: Some(Foo { bar: None }) }; // 2. WILL NOT WORK | ^^^ cannot infer type for `B` 你有两个不同的问题,所以我想我会写两个不同的答案。 在您的第一个代码示例中,2 和 3 不起作用,因为 B 是一个 input 类型参数; barr 的调用者决定 B 是什么。然而,你试图强迫它成为Foo。 假设我们有另一个 Bar 的实现: struct Quux; impl Bar for Quux {} 假设我们这样调用 barr: barr::<Quux>() barr 本质上会被编译为: fn barr() { bar(Foo); let foo: Quux = Foo; let foo_vec: Vec<Quux> = vec![Foo]; } Foo 和 Quux 不兼容,Vec<Foo> 和 Vec<Quux> 也不兼容。 如果您尝试创建任意 Bar 对象的向量,则需要以非通用方式使用 Bar。由于特征类型未调整大小,因此您无法将它们直接存储在 Vec 中,因此您必须使用 Vec<Box<Bar>>、Vec<&Bar> 或包装指针的其他类型。 fn barr() { bar(Foo); let foo: Box<Bar> = Box::new(Foo); let foo_vec: Vec<Box<Bar>> = vec![Box::new(Foo) as Box<Bar>]; } 在您的第二个代码示例中,错误是 None 具有类型 Option<T>,并且编译器无法推断 T 的适当类型。我们可以像这样显式指定 T: fn circle_vec<B: Bar>() { bar(Foo2); Foo { bar: Some(Foo { bar: None::<Foo2> }), }; }

回答 1 投票 0

SQLx 中的 `&mut *transaction` 和 `&mut transaction` 有什么区别?

我很好奇在我的示例中 &mut *transaction 和 &mut transaction 之间有什么区别,因为我不认为该 transaction 是一个开始的指针,但出于某种原因 &mut *

回答 2 投票 0

类型 <T><T> 的特征 From

我有3个箱子。 具有特征定义的特征定义: 酒吧特质测试{ 输入执行; } 下面是类型特征的第一次实现 pub 结构首先; pub 结构第一参数;

回答 1 投票 0

在 Rust 中转换非原始类型

我对 Rust 很陌生,如果这是一个简单的问题,我很抱歉! 我有以下简化场景,其中有一个特征和两个实现该特征的结构类型(TypeA 和 TypeB)。我...

回答 1 投票 0

在 Rust 中,是否存在由任何类型 T 实现的特征,使得 t.clone() 产生 T?

假设我正在尝试创建一个如下函数: func(迭代器:impl IntoIterator) 我认为这适用于 func(vec),但不适用于 func(&vec),这很好,但如果我想要它怎么办...

回答 1 投票 0

如何将访问器方法从模型移动到特征?

我的模型中有一些访问器,我想将它们移动到一个特征,但我收到了一个不知道如何修复的错误。请帮助我如何处理。顺便说一句,我是 Laravel 的新手! 这是我的梅尔...

回答 1 投票 0

如何在 Rust 中强制泛型参数为 u8、u16、u32 或 u64 类型?

我正在尝试用 Rust 编写一个函数,它应该接受泛型参数 T,但我想强制 T 为无符号整数类型之一(u8、u16、u32 或 u64)。另外,我想休息...

回答 1 投票 0

如何创建一个对各种整数类型通用的 is_prime 函数?

我刚刚深入了解 Rust,想要制作一些通用的基本数学函数。我有以下 is_prime 函数: fn is_prime(n: i64) -> bool { 如果 n == 2 || n == 3 {

回答 4 投票 0

如何在 PHP 中调用“父”特征方法?

这是我的代码 使用 Illuminate\Foundation\Auth\ResetsPasswords; 类PasswordController扩展控制器{ 使用重置密码; 公共函数postReset(请求$请求){ // 做

回答 2 投票 0

如何在另一个控制器中访问一个控制器中声明的数组数据?

我有一个控制器中包含一些数据的数组,如下所示: $data['国家'] = 数组( [“code”=>“fr”,“title”=>“法语”,“flag&qu...

回答 1 投票 0

使用 Traits 和 Trait 函数与切片和数组进行解除引用是如何工作的

(我是 Rust 新手,试图编写一个小纸牌游戏作为练习,但我可能没有正确掌握一些东西。我正在尽力解决我的问题/困惑。) 我想要

回答 1 投票 0

缺少实现(但帮助消息说我已经实现了)

我正在编写一个 tonic 中间件来将应用程序状态加载到 gRPC 处理程序中,但我无法让我的应用程序与中间件层一起服务 我仔细检查了类型并查看了许多示例......

回答 1 投票 0

如果实现了 Rust 特征,则调用函数,否则不执行任何操作

我惊讶地陷入了一个看起来违反直觉的简单 Rust 问题,但我似乎无法弄清楚。我几乎开始认为这可能是无法解决的,但我不确定......

回答 1 投票 0

如何使自动特质的负面实现不扩展到复合类型

我想避免为包含未实现给定自动特征的类型的复合类型取消实现给定自动特征。 对于任何不是 () 的东西,我都有这个自动特征: 酒吧汽车...

回答 1 投票 0

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