Wie kann ich festlegen, dass ein Kotlin-Erweiterungsfunktionsparameter dem erweiterten Typ entspricht?

Ich möchte eine Erweiterungsmethode für einen generischen Typ T schreiben, wobei der übereinstimmende Typ einen Methodenparameter einschränkt.

Ich möchte dies kompilieren:

"Hello".thing("world")

Aber das nicht, da 42 kein String ist:

"Hello".thing(42)

Diese Definition funktioniert nicht, da T mit @ erfüllt isAny

fun <T> T.thing(p: T) {}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage