463得票6回答
如何覆盖 trait 函数并从被覆盖的函数中调用它?

场景:trait A { function calc($v) { return $v+1; } } class MyClass { use A; function calc($v) { $v++; return...

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

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

405得票8回答
使用抽象类与使用特质相比有什么优势?

除了性能方面,使用抽象类的优点是什么?似乎大多数情况下抽象类都可以被 trait 取代。

394得票13回答
特质 vs 接口

我最近一直在努力学习PHP,但是我发现我对traits这个概念有些困惑。我理解水平代码复用的概念,以及不一定要从抽象类中继承的想法。但我不明白的是:使用traits和使用接口之间的关键区别是什么? 我尝试搜索一些不错的博客文章或者是解释何时使用其中一个而不是另一个的文章,但是到目前为止我找到...

374得票6回答
什么是密封特质(sealed trait)?

《Scala编程》中有关于密封类的描述,但并没有提到密封特质。 在哪里可以找到更多关于密封特质的信息? 我想知道,密封特质和密封类是否相同? 如果不同,它们之间有什么区别? 何时使用密封特质是一个好主意(何时不是)?

209得票3回答
Rust中的特质和Haskell中的类型类之间有什么区别?

Rust中的Traits与Haskell中的类型类(typeclasses)表面上看起来相似,但是有人写道它们之间存在一些差异。我想知道这些差异具体是什么。

171得票2回答
混合 vs 特征

混合类和特质在IT技术中有什么区别? 根据维基百科的解释,Ruby模块有点像特质。这是怎么回事?

164得票5回答
PHP中的特征 - 有哪些现实世界的例子/最佳实践?

Traits 是PHP 5.4中最大的新增功能之一,它可以实现代码的横向重用,以支持日志记录、安全性、缓存等常见需求。 然而,我仍不知道如何在我的项目中使用traits。 是否有任何已经使用traits的开源项目?是否有任何关于如何使用traits构建架构的好文章/阅读材料?

147得票5回答
能否确定lambda的参数类型和返回类型?

给定一个lambda函数,是否有可能确定它的参数类型和返回值类型?如果可以,怎么做? 基本上,我想要一个名为lambda_traits的工具,可以按以下方式使用: auto lambda = [](int i) { return long(i*10); }; lambda_traits&...

120得票1回答
Java 8默认方法作为特征:安全吗?

在Java 8中,使用默认方法作为traits的替代品是否是一种安全实践? 有人声称如果你只是出于酷而使用它们,则可能会让熊猫感到悲伤,但这并不是我的意图。通常提醒我们,默认方法是为了支持API演进和向后兼容而引入的,这是真的,但这并不意味着将它们用作trait本身就是错误或扭曲的。 我有...