Kotlin: Force inline módszer, hogy megőrizzék az összeget a megadott sorok

szavazat
0

Szóval van ez a módszer, hogy szeretnék használni a fakitermelés, miközben visszatért a bejelentkezett objektum:

inline fun <T> T.btwLog(prefix:String=)=apply { Timber.d($prefix->${toString()}) }

A fűrészáru osztály egy naplózó Könyvtár és (ha ilyen módon beállított) mutatja a vonal, amelyen azt nevezték, ami indokolja, hogy az eljárás inline (megmutatni a sorban, és helyes osztályát, ahol nevezték) Például :

val b = someThingComplex().btwLog()

Ez alapvetően működik, az egyetlen probléma az, hogy a sor számát a baj. Ez alapvetően kell, hogy legyen, mert Kotlin beszúrja a módszert, és eközben hozzáteszi, néhány sort, hogy az osztály (4) ?.

Tehát a példát előtt valószínűleg hasonlóan néz ki:

val b = someThingComplex()
        .apply { 
        Timber.d($prefix->${toString()})
        }

Egy másik módszer, ahol ez Kotlin nem hozzá további sorokat:

inline fun Any.log(s:String=)= Timber.d(s+this)

Van-e bármilyen módon, hogy tudtam kényszeríteni Kotlin csak inline meg pontosan azt, amit írtam, és nem ad hozzá sortöréseket és a cucc? Vagy van egy jobb út, hogy én is meghatározza a módszert általában?

Kösz.

A kérdést 13/01/2020 22:02
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Gyanítom, hogy a váltás a sorszámok miatt lehet a hívást apply. Próbáld meg így.

inline fun <T> T.btwLog(prefix: String = ""): T {
    Timber.d(prefix + "->" + this)
    return this
}
Válaszolt 13/01/2020 23:16
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more