7得票1回答
Scala特质函数:返回派生类型的实例

我有一个名为“Book”的特征,长这样: trait Book{ val sqlTableName; def getAll: Seq[ Book ] = { magicSQLFn( $"SELECT * FROM $sqlTableName" ) } } 我有两个派生类型: cl...

421得票11回答
自类型和特质子类之间有什么区别?

一个用于特质A的自类型:trait B trait A { this: B => } 说的是:"A 不能被混合到没有扩展 B 的具体类中。" 另一方面,以下内容:trait B trait A extends B 它表明 "任何(具体或抽象)混合 A 的类也将混合 B"。 这两个语句不...

8得票1回答
在Laravel Eloquent模型中创建动态命名的mutators

我有一个日期字段列表,它们所有的mutators都具有相同的逻辑。我想把这个功能提取到一个trait中,以便将来只需要在模型中创建一个日期字段数组并使用trait即可。 像这样: foreach( $dates as $date ) { $dateCamelCase = $this...

7得票6回答
Scala - 在特质中重写类方法

我是一个新手Scala程序员(之前从Ruby转过来)。 我对Scala中的“traits”概念很感兴趣(如果我理解正确的话,应该类似于Ruby中的模块)。 下面是一个使用案例。 假设我定义了一个名为User的类: class User { def password() : St...

82得票3回答
如何在PHP >= 5.4中的特质中重载类构造函数

在 PHP 5 中,我可以重载构造函数(和其他任何方法)。但如果我得到像下面这样的代码:class Base { public function __construct($a, $b) { echo $a+$b; } public function...

8得票1回答
可否将可叠加特质模式应用于单例对象?

我希望能在单例对象中使用可叠加特质模式,但是我似乎找不到如何让编译器满意的方法: abstract class Pr { def pr() } trait PrePostPr extends Pr { abstract override def pr() { println...

14得票3回答
PHP 5.4 - Traits和self / static

我希望能够像下面这样在我的类上进行方法链调用:new Obj($args, $if, $any)->foo()->bar(); 不幸的是,我必须将结构括在括号里:(new Obj($args, $if, $any))->foo()->bar(); 所以我希望能够拥有一个...

12得票3回答
Objective-C支持traits/mixins吗?

有没有在Objective-C中模拟特质或Mixin的技术? 例如,像Scala一样,我可以做这样的事情:trait ControllerWithData { def loadData = ... def reloadData = ... def elementAtIndex =...

9得票2回答
什么是可堆叠修改?

我正在阅读一本关于Scala的书,其中提到使用特质(traits)进行 可堆叠修改。什么是 可堆叠修改,它们有什么用途?

7得票1回答
通过<:实现特性继承

我习惯于从这样的特质中继承: trait A trait B extends A 但最近我无意中发现,使用&lt;:也是可能的。 trait A trait B &lt;: A 为什么?是什么动机?(不想听它写在规格中。)当一个类进入游戏时,这是不可能的。