c'è qualcuno che possa spiegarmi per cosa viene utilizzata la funzione "con"?Utilizzo della funzione "con"
Firma
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
Doc
chiamate la funzione specificata f con il ricevitore dato come suo ricevitore e restituisce il risultato.
E ho trovato il suo utilizzo su questo progetto Antonio Leiva. E 'stato utilizzato per la visualizzazione in movimento:
fun View.animateTranslationY(translationY: Int, interpolator: Interpolator) {
with(ObjectAnimator.ofFloat(this, "translationY", translationY.toFloat())) {
setDuration(context.resources.getInteger(R.integer.config_mediumAnimTime).toLong())
setInterpolator(interpolator)
start()
}
}
stavo pensando che io conosco il significato di trasferisco a
fun View.animateTranslationX(translationX: Int, interpolator: Interpolator) {
with(ObjectAnimator()) {
ofFloat(this, "translationX", translationX.toFloat())
setDuration(context.resources.getInteger(R.integer.config_mediumAnimTime).toLong())
setInterpolator(interpolator)
start()
}
}
ma non viene compilato correttamente ... Ma io penso che sia il ricevitore ObjectAnimaton
e ottiene tutto ciò che chiamerò nella parentesi {}
. Qualcuno può spiegare il vero significato e fornire un esempio di base, almeno di base? : D
'with' è il nome della funzione (con i parametri del tipo' 'T' e R'), non una parola chiave. Una parola chiave è una parola con un significato specifico nella lingua, non con un significato specifico in un'API, anche se è l'API di base. –
hai ragione, l'ho modificato – United121
Non c'è niente di sbagliato nella domanda, l'ho formattato un po 'di più se non ti dispiace. Si noti che non è necessario ripetere la lingua/runtime nel titolo, questo è ciò che i tag sono per. –