111得票2回答
如何从trait对象中获取对具体类型的引用?

在这段代码中,我该如何从变量a中获取Box<B>、&B或者&Box<B>?trait A {} struct B; impl A for B {} fn main() { let mut a: Box<dyn A> = Box::...

104得票4回答
何时在Scala traits中使用val或def?

我正在查看effective scala幻灯片,它在第10页提到永远不要在trait中使用val来定义抽象成员,而是应该使用def。幻灯片没有详细说明为什么在trait中使用抽象的val是一种反模式。如果有人能够解释在trait中使用val与def来定义抽象方法的最佳实践,我将不胜感激。

103得票2回答
有没有一种方法可以在PHP中扩展trait?

我想利用现有的trait的功能,并在其基础上创建自己的trait,以便稍后将其应用于类。 我想扩展Laravel SoftDeletes trait,创建SaveWithHistory函数,它将记录的副本作为已删除的记录。 我还想使用record_made_by_user_id字段扩展它。

103得票3回答
如何指定一个结构体字段必须实现一个特质?

我有一个特性 Foopub trait Foo { fn do_something(&self) -> f64; } 以及引用该trait的结构体pub struct Bar { foo: Foo, } 尝试编译时我收到以下错误信息:error: reference ...

95得票4回答
抽象类和特质的区别

抽象类和特质(trait)的概念上有什么区别? 可能是重复问题: Scala traits vs abstract classes

94得票4回答
为什么PHP trait不能实现接口?

我想知道为什么PHP Trait(PHP 5.4)不能实现接口。 更新来自user1460043的回答 => ...不能要求使用它的类来实现特定的接口 我明白这可能是显而易见的,因为人们可能会认为如果一个Class A使用了一个实现了接口I的Trait T,那么Class A应该间接地实现...

93得票2回答
如何为结构体引用实现Add trait?

我创建了一个由两个元素组成的Vector结构体,并且想要重载+运算符。 我让所有的函数和方法都采用引用而不是值,同时希望+运算符也能以同样的方式工作。 impl Add for Vector { fn add(&self, other: &Vector) ->...

92得票4回答
什么使得一个对象成为“trait object”?

最近 Rust 的变化使 "trait objects" 对我来说更加突出,但我只有模糊的理解,不知道是什么让某些东西成为 trait object。特别是一个变化是 即将到来的变化 允许 trait objects 将 trait 实现转发到内部类型。 给定一个 trait Foo,我很确...

90得票1回答
我如何在涉及两种类型的特质上进行分派,其中同时满足特质的第二种类型由第一种类型唯一确定?

假设我有一个Julia特质,它涉及两种类型:一种类型是某种“基本”类型,可能满足某种部分特质,另一种类型是由基本类型唯一确定的“关联”类型。(也就是说,从BaseType到AssociatedType的关系是一个函数。)这些类型共同满足了我感兴趣的复合特质。 例如: using Trait...

89得票2回答
如何实现Rust的Copy trait?

我正在尝试在Rust中初始化一个结构体数组:enum Direction { North, East, South, West, } struct RoadPoint { direction: Direction, index: i32, } ...