In Scala, a volte la classe estende un tratto per fornire alcuni metodi per estendere la classe all'interno .
import org.scalatest._
class ExampleSpec extends FlatSpec with Matchers { ...
Matchers trait fornisce un metodo utile come startWith , endWith o include .
string should startWith ("Hello")
string should endWith ("world")
string should include ("seven")
Il problema è semplice, " ExampleSpec non è Matchers ".
Estende per interruzioni di funzionalità Principio fondamentale OOP.
Questo extends è fonte di confusione soprattutto per il lettore di codice o il nuovo arrivato.
Penso che dovremmo usare import come import scalatest.matchers._ .
Questo non altera l'albero ereditario.
Si estende per le cattive pratiche delle funzionalità in Scala? o ragionevole estende l'utilizzo?