Czy jest ktoś, kto może mi wyjaśnić, do czego służy funkcja "z"?Użycie funkcji "z"
sygnatury
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
Doc
Wywołuje określonej funkcji f z danym odbiorniku odbiornikiem i zwraca jej wynik.
Znalazłem jego użycie w tym projekcie Antonio Leiva. Został użyciem ruchomego widzenia:
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()
}
}
Myślałam, że znam znaczenie przenieść go do
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()
}
}
ale nie skompilować ... Ale myślę, że odbiornik jest ObjectAnimaton
i dostaje wszystko, co wezmę w nawiasie. Czy ktokolwiek może wyjaśnić prawdziwe znaczenie i podać podstawowy przykład - przynajmniej bardziej podstawowy od tego? : D
'with' to nazwa funkcji (z parametrami typu' 'R' T' a) nie słowo kluczowe. Słowo kluczowe to słowo o określonym znaczeniu w języku, a nie o określonym znaczeniu w interfejsie API, nawet jeśli jest to podstawowy interfejs API. –
masz rację, ja to edytowałem – United121
Nic złego w tym pytaniu, sformatowałem je trochę więcej, jeśli nie masz nic przeciwko. Zwróć uwagę, że nie trzeba powtarzać języka/środowiska wykonawczego w tytule, do tego służą znaczniki. –