Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin · Oppitunti

Lausekkeet ennen lauseita

Kaikki palauttaa arvon.

Oppitunti 4/413 vaihetta

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 2

if 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 style

Pikatarkistus

Miksi if/else evaluoituu Scalassa?

Kertaus

Scala suosii arvoja tuottavia lausekkeita tilaa vain muuttaviin lauseisiin verrattuna.

  • if, match, lohkot ja for/yield palauttavat 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ä.
Aloita maksutta

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

  1. val verrattuna var-määreeseen
  2. Perustyypit ja literaalit
  3. Tyyppipäättely
  4. Lausekkeet ennen lauseita
← Takaisin: Scala backend-kehitykseen ja funktionaaliseen ohjelmointiin