let ja run: muuntaminen ja rajaus
Käyttäkää let-funktiota null-turvallisiin muunnoksiin ja run-funktiota paikallisiin laskutoimituksiin.
let ja run: muuntaminen ja rajaus on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
let ja run
let käyttää vastaanottajana it-viittausta; run käyttää this-viittausta. Molemmat palauttavat lambdan viimeisen lausekkeen. Valitkaa funktio sen mukaan, pidättekö eksplisiittisistä viittauksista.
let-perusteet
let välittää vastaanottajan lambdalle muodossa it. Se sopii arvon muuntamiseen tai muuttujan näkyvyysalueen rajoittamiseen.
fun main() {
val length = "Kotlin".let { it.length }
println(length) // 6
}let nullable-arvon kanssa
Klassinen idiomi: obj?.let { ... } suorittaa lohkon vain, kun obj ei ole null.
fun main() {
val name: String? = "Ada"
val upper = name?.let { it.uppercase() } ?: "(unknown)"
println(upper) // ADA
}let muuntamiseen
Käyttäkää let-funktiota arvon muuntamiseen niin, että ketju pysyy helposti luettavana.
fun main() {
val numStr = "42"
val doubled = numStr.let { it.toInt() }.let { it * 2 }
println(doubled) // 84
}let näkyvyysalueen rajoittamiseen
Rajoittakaa muuttujan näkyvyys pieneen lohkoon — siisti tapa välttää nimiavaruuden saastumista.
fun main() {
val username = readUserConfig().let { config ->
config.uppercase()
}
println(username)
}
fun readUserConfig() = "ada"run-perusteet
run toimii kuten let, mutta käyttää it-viittauksen sijaan this-viittausta. Se sopii tilanteisiin, joissa haluatte kutsua useita vastaanottajan jäseniä.
class Rect(val w: Int, val h: Int) {
fun area() = w * h
fun perimeter() = 2 * (w + h)
}
fun main() {
val description = Rect(3, 4).run {
"area=${area()}, perimeter=${perimeter()}"
}
println(description)
}run itsenäisenä lohkona
run { ... } (ilman vastaanottajaa) suorittaa lohkon ja palauttaa sen tuloksen — hyödyllinen laskutoimitusten ryhmittelyyn.
fun main() {
val result = run {
val a = 10
val b = 20
a + b
}
println(result) // 30
}let ja run vastaanottajan viittaustavan mukaan
Jos lambdan runko käyttää monia vastaanottajan jäseniä, run välttää it.-etuliitteet. Jos vastaanottajaa käytetään vain kerran tai kahdesti, let on selkeä.
class User(val name: String, val email: String, val age: Int)
fun main() {
val user = User("Ada", "ada@x.io", 35)
// run: this-style
val s1 = user.run { "$name <$email> age $age" }
// let: it-style
val s2 = user.let { "${it.name} <${it.email}> age ${it.age}" }
println(s1); println(s2)
}let-funktion ja Elvis-operaattorin yhdistäminen
Yhdistelmä ?.let { ... } ja ?: muodostaa tehokkaan null-turvallisen putkikuvion.
fun main() {
val raw: String? = " hello "
val cleaned = raw?.let { it.trim().uppercase() } ?: "(empty)"
println(cleaned) // HELLO
}run määritykseen ja tulokseen
Yhdistäkää alustaminen (this-viittauksen avulla) ja palautettava arvo yhteen lohkoon.
class Connection {
var host: String = ""
fun connect() = "connected to $host"
}
fun main() {
val status = Connection().run {
host = "localhost"
connect()
}
println(status)
}Vastaesimerkki: let-funktion liikakäyttö
Älkää käärikö yksinkertaisia null-tarkistuksia let-funktion sisään, jos if on selkeämpi. Käyttäkää scope-funktioita vain silloin, kun niistä on oikeasti hyötyä.
fun main() {
val name: String? = "Ada"
// OK
name?.let { println(it.length) }
// Equivalent and clearer for trivial cases:
if (name != null) println(name.length)
}Pikatarkistus
Mikä scope-funktio välittää vastaanottajan lambdalle muodossa it JA palauttaa lambdan tuloksen?
Kertaus
let käyttää it-viittausta ja palauttaa lambdan tuloksen — erinomainen null-turvallisiin muunnoksiin ja näkyvyysalueen rajoittamiseen. run käyttää this-viittausta ja palauttaa lambdan tuloksen — erinomainen, kun kutsutte useita vastaanottajan jäseniä. Molemmat sopivat hyvin lauseketyyliseen koodiin.
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”let ja run: muuntaminen ja rajaus” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “let ja run: muuntaminen ja rajaus”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”let ja run: muuntaminen ja rajaus”?
Käyttäkää let-funktiota null-turvallisiin muunnoksiin ja run-funktiota paikallisiin laskutoimituksiin. Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”let ja run: muuntaminen ja rajaus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?
Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- apply ja with: määrittäminen ja palauttaminen
- let ja run: muuntaminen ja rajaus
- also: sivuvaikutukset vastaanotinta muuttamatta
- Oikean scope-funktion valinta: päätösopas