2017-12-17 2 views
-3

wenn mein Code sieht aus wieKotlin Index Operator [0] vs erhalten (0)

myList.get(0) 

Intellij empfiehlt mir, sie zu ersetzen mit

myList.get()[0] 

was ist der Vorteil?

enter image description here

aktualisieren ... sorry für zu schnell Code gefragt war eigentlich

myList.get().get(0) 

myList eine optional hielt und sie alle Sinne machen jetzt

+0

Was ist myList? –

+7

Es bedeutet nicht, get() [0] '. Das sollte nicht kompilieren. Es schlägt 'myList [0]' vor. Ich habe auch getestet, dass IntelliJs Quick-Fix es damit ersetzt. – chris

Antwort

1

sollten Sie ersetzen Sie myList.get(0) durch myList[0]. Es ist kompiliert, um genau das get rufen Sie verwendet, aber sieht kotlinisch. Es ist möglich, weil get als operator definiert ist, die per Konvention durch den Operator Index ersetzt werden kann.

+1

Nun, seltsam, [es ist nicht _exactly_ das gleiche] (https://stackoverflow.com/questions/47579524/strange-javal-lang-classcastexception-when-using-call/47579973#47579973) (zumindest für Arrays). – Moira

Verwandte Themen