mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
Update scala-gr.html.markdown
This commit is contained in:
parent
df1f9fdb9e
commit
989615be41
@ -40,7 +40,7 @@ Scala - Η επεκτάσιμη γλώσσα
|
||||
|
||||
/*
|
||||
Τα σχόλια που επεκτείνονται σε πολλές γραμμές , όπως μπορείτε
|
||||
να δείτε , φαίνοται κάπως έτσι.
|
||||
να δείτε , φαίνονται κάπως έτσι.
|
||||
*/
|
||||
|
||||
// Εκτύπωση με νέα γραμμή στην επόμενη εκτύπωση
|
||||
@ -59,12 +59,12 @@ var y = 10
|
||||
y = 20 // το y είναι τώρα 20
|
||||
|
||||
/*
|
||||
Η Scala είναι στατικού τύπου γλώσσα, εν τούτις προσέξτε ότι στις παραπάνω
|
||||
Η Scala είναι στατικού τύπου γλώσσα, εν τούτοις προσέξτε ότι στις παραπάνω
|
||||
δηλώσεις , δεν προσδιορίσαμε κάποιον τύπο. Αυτό συμβαίνει λόγω ενός
|
||||
χαρακτηριστικού της Scala που λέγεται συμπερασματολογία τύπων. Στις
|
||||
περισσότερες των περιπτώσεων, ο μεταγλωττιστής της Scala μπορεί να
|
||||
μαντέψει ποιός είναι ο τύπος μιας μεταβλητής. Μπορούμε να δηλώσουμε
|
||||
αναλυτικά τον τύπο μιάς μεταβλητής ως εξής:
|
||||
μαντέψει ποιος είναι ο τύπος μιας μεταβλητής. Μπορούμε να δηλώσουμε
|
||||
αναλυτικά τον τύπο μιας μεταβλητής ως εξής:
|
||||
*/
|
||||
val z: Int = 10
|
||||
val a: Double = 1.0
|
||||
@ -85,7 +85,7 @@ false
|
||||
true == false // false
|
||||
10 > 5 // true
|
||||
|
||||
// Η αριθμιτική είναι όπως τα συνηθισμένα
|
||||
// Η αριθμητική είναι όπως τα συνηθισμένα
|
||||
1 + 1 // 2
|
||||
2 - 1 // 1
|
||||
5 * 3 // 15
|
||||
@ -117,14 +117,14 @@ true == false // false
|
||||
"Τα αλφαριθμητικά στην Scala περικλείονται από διπλά εισαγωγικά"
|
||||
'a' // Ένας χαρακτήρας στην Scala
|
||||
// res30: Char = a
|
||||
// 'Αλφαριθημτικά με μονά εισαγωγικά δεν υφίστανται <= Αυτό θα προκαλέσει σφάλμα.
|
||||
// Αλφαριθημτικά με μονά εισαγωγικά δεν υφίστανται <= Αυτό θα προκαλέσει σφάλμα.
|
||||
|
||||
// Τα αλφαριθμητικά έχουν τις συνηθισμένες μεθόδους της Java ορισμένες πάνω τους.
|
||||
"hello world".length
|
||||
"hello world".substring(2, 6)
|
||||
"hello world".replace("C", "3")
|
||||
|
||||
// Έχουν επίσης μερικές επιπλένον μεθόδους Scala.
|
||||
// Έχουν επίσης μερικές επιπλέον μεθόδους Scala.
|
||||
// Δείτε επίσης : scala.collection.immutable.StringOps
|
||||
"hello world".take(5)
|
||||
"hello world".drop(5)
|
||||
@ -253,7 +253,7 @@ r foreach println
|
||||
var i = 0
|
||||
while (i < 10) { println("i " + i); i+=1 }
|
||||
|
||||
while (i < 10) { println("i " + i); i+=1 } // Ναι ξανά! Τι συνέβει; Γιατί;
|
||||
while (i < 10) { println("i " + i); i+=1 } // Ναι ξανά! Τι συνέβη; Γιατί;
|
||||
|
||||
i // Εμφάνισε την τιμή του i. Σημειώστε ότι ένας βρόχος while είναι βρόχος
|
||||
// με την κλασική έννοια - εκτελείται σειριακά καθώς αλλάζει η μεταβλητή
|
||||
@ -268,8 +268,8 @@ do {
|
||||
} while (x < 10)
|
||||
|
||||
// Η αναδρομή ουράς είναι ένας ιδιωματικός τρόπος να κάνεις επαναλαμβανόμενα
|
||||
// πράγματα στην Scala. Οι αναδρομικές συναρτήσεις απαιτούν να γράφτεί
|
||||
// ρητά ο τύπος που θα επιστρέψουν , αλλιώς ο μεταγλωττιστής δεν μπορεί
|
||||
// πράγματα στην Scala. Οι αναδρομικές συναρτήσεις απαιτούν να γραφτεί
|
||||
// ρητά ο τύπος που θα επιστρέψουν, αλλιώς ο μεταγλωττιστής δεν μπορεί
|
||||
// αλλιώς να τον συνάγει. Παρακάτω είναι μια συνάρτηση που επιστρέφει Unit.
|
||||
def showNumbersInRange(a:Int, b:Int):Unit = {
|
||||
print(a)
|
||||
@ -332,7 +332,7 @@ s(1)
|
||||
val divideInts = (x:Int, y:Int) => (x / y, x % y)
|
||||
|
||||
divideInts(10,3) // Η συνάρτηση divideInts επιστρέφει το αποτέλεσμα
|
||||
// της ακαίρεας διαίρεσης και το υπόλοιπο.
|
||||
// της ακέραιας διαίρεσης και το υπόλοιπο.
|
||||
|
||||
// Για να έχουμε πρόσβαση στα στοιχεία μιας πλειάδας, χρησιμοποιούμε το _._n
|
||||
// όπου το n είναι ο δείκτης με βάση το 1 του στοιχείου.
|
||||
@ -349,7 +349,7 @@ d._2
|
||||
|
||||
/*
|
||||
Ότι έχουμε κάνει ως τώρα σε αυτό το tutorial ήταν απλές εκφράσεις
|
||||
(τιμές , συναρτήσεις , κτλ). Αυτές οι εκφράσεις βολεύουν όταν τις
|
||||
(τιμές, συναρτήσεις, κτλ.). Αυτές οι εκφράσεις βολεύουν όταν τις
|
||||
γράφουμε στο REPL για γρήγορες δοκιμές, αλλά δεν μπορούν να υπάρχουν
|
||||
από μόνες τους σε ένα αρχείο Scala. Για παράδειγμα , δεν μπορούμε να
|
||||
έχουμε μόνο ένα "val x = 5" στο αρχείο Scala. Αντί αυτού , τα μόνα
|
||||
@ -394,7 +394,7 @@ println(mydog.bark) // => "Woof, woof!"
|
||||
// αυτές καθ' αυτές, αλλά η συμπρεριφορά που σχετίζεται με όλα τα instances
|
||||
// της κλάσης πάνε μέσα στο object. Η διαφορά είναι παρόμοια με τις
|
||||
// μεθόδους κλάσεων σε σχέση με στατικές μεθόδους σε άλλες γλώσσες.
|
||||
// Προσέξτε οτι τα objects και οι κλάσεις μπορούν να έχουν το ίδιο όνομα.
|
||||
// Προσέξτε ότι τα objects και οι κλάσεις μπορούν να έχουν το ίδιο όνομα.
|
||||
object Dog {
|
||||
def allKnownBreeds = List("pitbull", "shepherd", "retriever")
|
||||
def createDog(breed: String) = new Dog(breed)
|
||||
@ -402,7 +402,7 @@ object Dog {
|
||||
|
||||
// Οι κλάσεις περίπτωσης (case classes) είναι που έχουν την επιπλέον
|
||||
// λειτουργικότητα ενσωματωμένη. Μιά συνήθης ερώτηση για αρχάριους στην
|
||||
// Scala είναι πότε να χρησιμοπούνται κλάσεις και πότε case κλάσεις.
|
||||
// Scala είναι πότε να χρησιμοποιούνται κλάσεις και πότε case κλάσεις.
|
||||
// Γενικά οι κλάσεις τείνουν να εστιάζουν στην ενθυλάκωση, τον
|
||||
// πολυμορφισμό και τη συμπεριφορά. Οι τιμές μέσα σε αυτές τις κλάσεις
|
||||
// τείνουν να είναι private , και μόνο οι μέθοδοι είναι εκτεθειμένες.
|
||||
@ -411,7 +411,7 @@ object Dog {
|
||||
// έχουν παρενέργειες.
|
||||
case class Person(name: String, phoneNumber: String)
|
||||
|
||||
// Δημιουργία ενός instance. Πραρατηρήστε ότι τα case classes
|
||||
// Δημιουργία ενός instance. Παρατηρήστε ότι τα case classes
|
||||
// δεν χρειάζονται την λέξη "new" .
|
||||
val george = Person("George", "1234")
|
||||
val kate = Person("Kate", "4567")
|
||||
@ -419,7 +419,7 @@ val kate = Person("Kate", "4567")
|
||||
// Με τα case classes, παίρνεις μερικά προνόμια δωρεάν , όπως:
|
||||
george.phoneNumber // => "1234"
|
||||
|
||||
// Ελέχγεται η ισότητα για κάθε πεδίο (δεν χρειάζεται να
|
||||
// Ελέγχεται η ισότητα για κάθε πεδίο (δεν χρειάζεται να
|
||||
// κάνουμε override στο .equals)
|
||||
Person("George", "1234") == Person("Kate", "1236") // => false
|
||||
|
||||
@ -509,7 +509,7 @@ List(1, 2, 3) map (x => x + 10)
|
||||
// ένα όρισμα στην ανώνυμη συνάρτηση. Έτσι δεσμεύεται ως η μεταβλητή.
|
||||
List(1, 2, 3) map (_ + 10)
|
||||
|
||||
// Αν το μπλόκ της ανώνυμης συνάρτησης ΚΑΙ η συνάρτηση που εφαρμόζεται
|
||||
// Αν το μπλοκ της ανώνυμης συνάρτησης ΚΑΙ η συνάρτηση που εφαρμόζεται
|
||||
// (στην περίπτωσή μας το foreach και το println) παίρνουν ένα όρισμα
|
||||
// μπορείτε να παραλείψετε την κάτω παύλα.
|
||||
List("Dom", "Bob", "Natalia") foreach println
|
||||
|
Loading…
Reference in New Issue
Block a user