Czy istnieje sposób kontrolowania, która niejawna konwersja będzie domyślna?
Przypuśćmy, że mam to:
class String2(val x:String) {
def *(times:Int) : String = {
val builder = new StringBuilder()
for( i <- 0 until times) {
builder.append(x)
}
builder.toString()
}
}
teraz, jeśli dodam to ukryte:
implicit def gimmeString2(y:String) = new String2(y)
Dostanę błąd kompilacji, ponieważ stringWrapper również dodaje to niejawne. Czy istnieje sposób powiedzenia kompilatorowi „zignoruj inne implicity, użyj tego”, aby nie musiałem tworzyć instancjiString2
obiekt i pracuj nad tym?
Przyznaję, że przykładowy kod może nie być najbardziej odpowiedni (dla tego pytania), ale myślę, że tak będzie.