scala — συγκεντρωτικός οδηγός — DedSec Project
scala — συγκεντρωτικός οδηγός Scala Συνήθης χρήση: Συναρτησιακός προγραμματισμός. Προτεινόμενη επέκταση αρχείου: .scala . Εκτέλεση / περιβάλλον: Εκτέλεση με εγκατεστημένα εργαλεία Scala 3…
Scala
Συνήθης χρήση: Συναρτησιακός προγραμματισμός.
Προτεινόμενη επέκταση αρχείου: .scala.
Εκτέλεση / περιβάλλον: Εκτέλεση με εγκατεστημένα εργαλεία Scala 3.
Αρχικό παράδειγμα
@main def hello(): Unit =
def greet(name: String) = s"Hello, $name!"
println(greet("Ada"))
Πώς διαβάζεται
Το εκφραστικό ύφος συνδυάζεται με βιβλιοθήκες της JVM.
Συνηθισμένο λάθος
Το εκφραστικό ύφος συνδυάζεται με βιβλιοθήκες της JVM. Έλεγξε την έκδοση διερμηνευτή/μεταγλωττιστή και μην εκλαμβάνεις το δείγμα ως έτοιμη εφαρμογή παραγωγής.
Scala — Αναλυτικός οδηγός εξάσκησης
Άλλο λάθος κείμενο και άλλο πραγματικό μηδέν
Δημιούργησε πηγαίο αρχείο Scala 3 με απλό parser:
def parse(raw: String): Option[Int] =
raw.toIntOption
@main def scoreDemo(): Unit =
assert(parse("12") == Some(12))
assert(parse("0") == Some(0))
assert(parse("bad") == None)
val values = List("3", "bad", "5")
println(values.flatMap(parse).sum)
Με συμβατό εργαλείο Scala 3 αναμένεται άθροισμα 8. Η Option διακρίνει την επιτυχία από την απουσία τιμής. Η flatMap(parse) απορρίπτει None, κάτι χρήσιμο για πειραματισμό αλλά δυνητικά επικίνδυνο όταν η εφαρμογή πρέπει να αναφέρει άκυρα δεδομένα. Κατάγραψε έκδοση και εντολή εκτέλεσης επειδή Scala 2 και Scala 3 διαφέρουν στα entry points.
Διατήρησε χρήσιμη περιγραφή αποτυχίας
Φτιάξε δεύτερη συνάρτηση που επιστρέφει Either[String,Int]. Σε έγκυρο ακέραιο παράγει Right, ενώ σε λανθασμένο κείμενο Left με περιγραφή. Όρισε αν η επεξεργασία συλλογής σταματά στο πρώτο σφάλμα ή συγκεντρώνει όλα τα λάθη. Μην μετατρέπεις αυτόματα το "bad" σε μηδέν.
Αμετάβλητες συλλογές
Δοκίμασε val original = List(1,2,3) και val updated = original.map(_ * 2). Η αρχική λίστα δεν πρέπει να μεταβληθεί. Σε αντίθεση με mutable buffer, το List.map δημιουργεί νέο αποτέλεσμα. Αυτό μειώνει τις τυχαίες μεταβολές κοινού state, αλλά δεν εξαλείφει κάθε bug παραλληλισμού.
Αυτοτελής άσκηση
Υποστήριξε κενά γύρω από αριθμητικό κείμενο με ρητό trim. Έλεγξε " 12 ", άδειο string, αρνητικό αριθμό και αριθμό εκτός εύρους Int. Ξεχώρισε το συντακτικό parsing από επιχειρησιακό κανόνα μη αρνητικών τιμών. Πρόσθεσε assertions και κατέγραψε πραγματικές εξόδους. Πηγή: https://docs.scala-lang.org/scala3/
Scala — Παραδείγματα πραγματικού κώδικα
Εκτέλεση των παραδειγμάτων
Τα παραδείγματα είναι μικρά και αυτοτελή. Χρησιμοποίησε τη σχετική εγκατεστημένη γλώσσα. Ενδεικτικά: scala {file}. Μη συγχέεις τα ονόματα αρχείων με αυτόματη εγκατάσταση. Δούλεψε σε δοκιμαστικό φάκελο.
Scala — Τεχνικά σημεία και συχνές παγίδες
Τεχνική γνώση
- Η Scala συνδυάζει αντικειμενοστραφείς και συναρτησιακές αφαιρέσεις.
- Οι αμετάβλητες συλλογές απλοποιούν τη σκέψη για ταυτόχρονες αλλαγές.
- Ένα Future πρέπει να συνδυαστεί ή να αναμείνεις το αποτέλεσμά του· η εκκίνηση δεν σημαίνει επιτυχία.