In Kotlin, was ist die idiomatische Möglichkeit, das Verhalten von List.get
so zu ändern, dass Aufruf get(-1)
das letzte Element in der Liste zurückgibt?Ändern List.get Verhalten in Kotlin
habe ich versucht, eine Erweiterung:
operator fun <T> List<T>.get(index: Int): T {
return this[if (index < 0) size + index else index]
}
Aber es verhält sich nicht wie gewünscht, und ich bekam die Warnung
scratch.kts:3:26: warning: extension is shadowed by a member: public abstract operator fun get(index: Int): T
operator fun <T> List<T>.get(index: Int): T {
^
Ich glaube, Sie bedeuten 'return this [if (Index <0) Größe + Index sonst index]' –
Was mit 'list.last' falsch? Gibt eindeutig an, was Sie tun und benötigt keinen indexbasierten Zugriff. –