Lausekkeet ennen lauseita
Kaikki palauttaa arvon.
Lausekkeet ennen lauseita on ilmainen Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-kurssilla on yhteensä 4 oppituntia.
Kaikki on lausekkeita
Monissa kielissä if-rakenteet ja lohkot ovat lauseita, jotka suorittavat toiminnon mutta eivät tuota arvoa. Scalassa ne ovat lausekkeita, jotka evaluoituvat arvoksi.
Tämä muutos on funktionaalisen ohjelmoinnin ytimessä Scalassa.
val max = if (3 > 2) 3 else 2if lausekkeena
Scalan if/else palauttaa suoritettavan haaran arvon. Voitte sijoittaa tuloksen suoraan val-muuttujaan.
Haarojen sisällä ei tarvitse määrittää muuntuvaa muuttujaa ja asettaa sille arvoa.
object Main extends App {
val temp = 18
val label = if (temp > 20) "warm" else "cool"
println(label)
}Lohkot palauttavat viimeisen rivinsä
Lohko { ... } on itsessään lauseke. Sen arvo on sen sisällä olevan viimeisen lausekkeen arvo.
Tässä lohko evaluoituu arvoksi 30, josta tulee result-muuttujan arvo.
object Main extends App {
val result = {
val a = 10
val b = 20
a + b
}
println(result)
}Eksplisiittistä return-komentoa ei tarvita
Koska metodin runko on lauseke, sen arvo on yksinkertaisesti viimeisenä evaluoitavan lausekkeen arvo. return-avainsanaa käytetään harvoin.
Molemmat alla olevat metodit toimivat samalla tavalla, mutta idiomatisessa versiossa return jätetään pois.
def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }Myös match on lauseke
match-rakenteella tehtävä hahmonsovitus tuottaa myös arvon, joten se sopii erinomaisesti syötteiden muuntamiseen tuloksiksi.
Jokainen tapaushaara tuottaa kyseisen haaran arvon.
object Main extends App {
val day = 3
val name = day match {
case 1 => "Mon"
case 3 => "Wed"
case _ => "Other"
}
println(name)
}Lausekkeita voi yhdistellä
Koska lausekkeet palauttavat arvoja, voitte sisäkkäistää ja yhdistellä niitä vapaasti.
if voi olla funktion argumentti tai osa suurempaa laskutoimitusta ilman väliaikaisia muuttujia.
object Main extends App {
val n = 7
println("sign: " + (if (n >= 0) "+" else "-"))
}Lauseita on silti olemassa
Kaikki ei tuota hyödyllistä arvoa. Pelkästään sivuvaikutusten vuoksi tehtävät operaatiot, kuten println tai sijoitus, evaluoituvat arvoksi Unit.
Nämä ovat Scalan lauseenomaisia lausekkeita.
val x: Unit = println("hello") // value is ()Välttäkää var-muuttujia lausekkeiden avulla
Lauseketyylin avulla voitte korvata muuttuviin var-muuttujiin perustuvat rakenteet. Sen sijaan että määrittäisitte var-muuttujan ja sijoittaisitte sille arvon haaroissa, sijoittakaa koko if val-muuttujaan.
object Main extends App {
val score = 85
val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
println(grade)
}for tuottaa arvoja
yield-avainsanan sisältävä for on lauseke, joka muodostaa uuden kokoelman sen sijaan, että se vain silmukoisi sivuvaikutusten vuoksi.
Näin iteraatio muuttuu arvoja tuottavaksi muunnokseksi.
object Main extends App {
val squares = for (i <- 1 to 4) yield i * i
println(squares)
}Miksi tällä on merkitystä backend-koodissa
Lausekkeisiin perustuva koodi on yleensä lyhyempää, sisältää vähemmän liikkuvia osia ja on helpompi testata.
- Harvemmat muuntuvat muuttujat tarkoittavat vähemmän virheitä.
- Tulokset muodostuvat luontevasti syötteistä.
- Se toimii hyvin yhdessä Scalan funktionaalisten kirjastojen kanssa.
Lausetyyli ja lauseketyyli
Verratkaa näitä kahta ajattelutapaa. Lausetyylissä muuttujan arvoa muutetaan, kun taas lauseketyylissä arvo palautetaan suoraan.
Scalassa voitte käyttää kumpaakin, mutta lauseketyyliä suositaan.
var s = "" // statement style
if (true) s = "yes" else s = "no"
val e = if (true) "yes" else "no" // expression stylePikatarkistus
Miksi if/else evaluoituu Scalassa?
Kertaus
Scala suosii arvoja tuottavia lausekkeita tilaa vain muuttaviin lauseisiin verrattuna.
if,match, lohkot jafor/yieldpalauttavat kaikki arvoja.- Metodien rungot palauttavat viimeisen lausekkeensa;
return-avainsanaa tarvitaan harvoin. - Sivuvaikutuksia aiheuttava koodi palauttaa arvon
Unit. - Tämä tyyli vähentää
var-muuttujien käyttöä ja virheitä.
Opi Scala 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
- 39
- Oppitunnit
- 143
Usein kysytyt kysymykset
Onko oppitunti ”Lausekkeet ennen lauseita” ilmainen?
Kyllä – oppitunnin ”Lausekkeet ennen lauseita” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-kurssin, päivitä CoddyKit PROhon. Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Lausekkeet ennen lauseita”?
Kaikki palauttaa arvon. Harjoittelet Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Lausekkeet ennen lauseita”-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ä Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-oppitunnilla?
Kyllä. Jokainen Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin-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
- val verrattuna var-määreeseen
- Perustyypit ja literaalit
- Tyyppipäättely
- Lausekkeet ennen lauseita