Σε αυτό το σεμινάριο, θα μάθετε σχετικά με τις μεταβλητές, τον τρόπο δημιουργίας τους και τους βασικούς τύπους δεδομένων που υποστηρίζει ο Kotlin για τη δημιουργία μεταβλητών.
Όπως γνωρίζετε, μια μεταβλητή είναι μια θέση στη μνήμη (χώρος αποθήκευσης) για την αποθήκευση δεδομένων.
Για να υποδείξετε την περιοχή αποθήκευσης, κάθε μεταβλητή πρέπει να έχει ένα μοναδικό όνομα (αναγνωριστικό). Μάθετε περισσότερα σχετικά με το πώς να ονομάσετε μια μεταβλητή στο Kotlin;
Πώς να δηλώσετε μια μεταβλητή στο Kotlin;
Για να δηλώσετε μια μεταβλητή σε Kotlin, είτε var
ή val
λέξη-κλειδί που χρησιμοποιείται. Εδώ είναι ένα παράδειγμα:
var language = "Γαλλικά" βαθμολογία val = 95
Η διαφορά στη χρήση var και val συζητείται αργότερα στο άρθρο. Προς το παρόν, ας επικεντρωθούμε στη μεταβλητή δήλωση.
Εδώ, η γλώσσα είναι μια μεταβλητή τύπου String
και score
είναι μια μεταβλητή τύπου Int
. Δεν χρειάζεται να καθορίσετε τον τύπο των μεταβλητών. Το Kotlin το κάνει σιωπηρά για εσάς. Ο μεταγλωττιστής το γνωρίζει αυτό με την αρχική έκφραση (το "Γαλλικά" είναι ένα String
, και το 95 είναι ακέραια τιμή στο παραπάνω πρόγραμμα). Αυτό ονομάζεται συμπερίληψη τύπου στον προγραμματισμό.
Ωστόσο, μπορείτε να καθορίσετε ρητά τον τύπο εάν θέλετε:
var γλώσσα: String = "Γαλλικά" βαθμολογία val: Int = 95
Έχουμε αρχικοποιήσει μεταβλητή κατά τη δήλωση στα παραπάνω παραδείγματα. Ωστόσο, δεν είναι απαραίτητο. Μπορείτε να δηλώσετε μεταβλητή και να καθορίσετε τον τύπο της σε μία δήλωση και να προετοιμάσετε τη μεταβλητή σε άλλη δήλωση αργότερα στο πρόγραμμα.
var language: String // μεταβλητή δήλωση τύπου String… language = "French" // μεταβλητή αρχική βαθμολογία Val: Int // μεταβλητή δήλωση τύπου Int… σκορ = 95 // μεταβλητή αρχικοποίηση
Ακολουθούν μερικά παραδείγματα που οδηγούν σε σφάλμα.
var language // Σφάλμα γλώσσα = "Γαλλικά"
Εδώ, ο τύπος της μεταβλητής γλώσσας δεν προσδιορίζεται ρητά, ούτε η μεταβλητή αρχικοποιείται κατά τη δήλωση.
var language: String language = 14 // Σφάλμα
Εδώ, προσπαθούμε να αντιστοιχίσουμε 14 (ακέραια τιμή) σε μεταβλητή διαφορετικού τύπου ( String
).
Διαφορά μεταξύ var και val
- val (Αμετάβλητη αναφορά) - Η μεταβλητή που δηλώνεται χρησιμοποιώντας τη
val
λέξη-κλειδί δεν μπορεί να αλλάξει μόλις εκχωρηθεί η τιμή. Είναι παρόμοιο με την τελική μεταβλητή στην Java. - var (Μεταβλητή αναφορά) - Η μεταβλητή που δηλώνεται χρησιμοποιώντας
var
λέξη-κλειδί μπορεί να αλλάξει αργότερα στο πρόγραμμα. Αντιστοιχεί σε κανονική μεταβλητή Java.
Ακολουθούν μερικά παραδείγματα:
var language = "Γαλλικά" γλώσσα = "Γερμανικά"
Εδώ, η language
μεταβλητή εκχωρείται εκ νέου στα Γερμανικά. Δεδομένου ότι, η μεταβλητή δηλώνεται χρησιμοποιώντας var
, αυτός ο κώδικας λειτουργεί τέλεια.
val language = "French" language = "German" // Σφάλμα
Δεν μπορείτε να εκχωρήσετε εκ νέου τη μεταβλητή γλώσσας German
στο παραπάνω παράδειγμα, επειδή η μεταβλητή δηλώνεται χρησιμοποιώντας val
.
Τώρα, ξέρετε ποιες είναι οι μεταβλητές Kotlin, ήρθε η ώρα να μάθετε διαφορετικές τιμές που μπορεί να πάρει μια μεταβλητή Kotlin.
Βασικοί τύποι Kotlin
Το Kotlin είναι μια στατικά δακτυλογραφημένη γλώσσα όπως η Java. Δηλαδή, ο τύπος μιας μεταβλητής είναι γνωστός κατά τη διάρκεια της μεταγλώττισης. Για παράδειγμα,
val γλώσσα: Int val σημάδια = 12.3
Εδώ, ο μεταγλωττιστής γνωρίζει ότι η γλώσσα είναι τύπου Int
και τα σημάδια είναι τύπου Double
πριν από την ώρα της μεταγλώττισης.
Οι ενσωματωμένοι τύποι στο Kotlin μπορούν να κατηγοριοποιηθούν ως:
- Αριθμοί
- Χαρακτήρες
- Booleans
- Πίνακες
Τύπος αριθμού
Οι αριθμοί στο Kotlin είναι παρόμοιοι με το Java. Υπάρχουν 6 ενσωματωμένοι τύποι που αντιπροσωπεύουν αριθμούς.
- Ψηφιόλεξη
- Μικρός
- Εντ
- Μακρύς
- Φλοτέρ
- Διπλό
1. Byte
- Ο
Byte
τύπος δεδομένων μπορεί να έχει τιμές από -128 έως 127 (8-bit υπογεγραμμένος ακέραιος αριθμός δύο). - Χρησιμοποιείται αντί
Int
ή άλλοι ακέραιοι τύποι δεδομένων για να εξοικονομήσετε μνήμη εάν είναι βέβαιο ότι η τιμή μιας μεταβλητής θα βρίσκεται εντός (-128, 127) - Παράδειγμα:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
112
2. Σύντομο
- Ο
Short
τύπος δεδομένων μπορεί να έχει τιμές από -32768 έως 32767 (16-bit υπογεγραμμένος ακέραιος αριθμός δύο). - Χρησιμοποιείται αντί για άλλους ακέραιους τύπους δεδομένων για εξοικονόμηση μνήμης εάν είναι βέβαιο ότι η τιμή της μεταβλητής θα βρίσκεται εντός (-32768, 32767).
- Παράδειγμα:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
-11245
3. Int
- Ο
Int
τύπος δεδομένων μπορεί να έχει τιμές από έως (ακέραιος αριθμός συμπληρωμένου 32-bit με υπογραφή δύο).-231
231-1
- Παράδειγμα:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
100000
Εάν εκχωρήσετε έναν ακέραιο μεταξύ σε μια μεταβλητή χωρίς να προσδιορίζει σαφώς το είδος της, η μεταβλητή θα είναι τύπου. Για παράδειγμα,-231
231-1
Int
fun main(args : Array) ( // score is of type Int val score = 10 println("$score") )
If you are using IntelliJ IDEA, you can place cursor inside the variable and press Ctrl + Shift + P
to see its type.
4. Long
- The
Long
data type can have values from-263
to263-1
(64-bit signed two's complement integer). - Example:
fun main(args : Array) ( val highestScore: Long = 9999 println("$highestScore") )
When you run the program, the output will be:
9999
If you assign an integer value greater than 231-1
or less than -231
to a variable (without explicitly specifying its type), the variable will be of Long
type. For example,
val distance = 10000000000 // distance variable of type Long
Similarly, you can use capital letter L to specify that the variable is of type Long
. For example,
val distance = 100L // distance value of type Long
5. Double
- The
Double
type is a double-precision 64-bit floating point. - Example:
fun main(args : Array) ( // distance is of type Double val distance = 999.5 println("$distance") )
When you run the program, the output will be:
999.5
Float
- The
Float
data type is a single-precision 32-bit floating point. Learn more about single precision and double precision floating point if you are interested. - Example:
fun main(args : Array) ( // distance is of type Float val distance = 19.5F println("$distance") )
When you run the program, the output will be:
19.5
Notice that, we have used 19.5F
instead of 19.5
in the above program. It is because 19.5
is a Double
literal, and you cannot assign Double
value to a variable of type Float
.
To tell compiler to treat 19.5
as Float
, you need to use F at the end.
If you are not sure what number value a variable will be assigned in the program, you can specify it as Number
type. This allows you to assign both integer and floating-point value to the variable (one at a time). For example:
fun main(args : Array) ( var test: Number = 12.2 println("$test") test = 12 // Int smart cast from Number println("$test") test = 120L // Long smart cast from Number println("$test") )
When you run the program, the output will be:
12.2 12 120
To learn more, visit: Kotlin smart casts
Char
To represent a character in Kotlin, Char types are used.
Unlike Java, Char types cannot be treated as numbers. Visit this page to learn more about Java char Type.
fun main(args : Array) ( val letter: Char letter = 'k' println("$letter") )
When you run the program, the output will be:
k
In Java, you can do something like:
char letter = 65;
However, the following code gives error in Kotlin.
var letter: Char = 65 // Error
Boolean
- The
Boolean
data type has two possible values, eithertrue
orfalse
. - Example:
fun main(args : Array) ( val flag = true println("$flag") )
Booleans are used in decision making statements (will be discussed in later chapter).
Kotlin Arrays
Ένας πίνακας είναι ένα κοντέινερ που κρατά δεδομένα (τιμές) ενός μόνο τύπου. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν πίνακα που μπορεί να περιέχει 100 τιμές Int
τύπου.
Στο Kotlin, οι πίνακες αντιπροσωπεύονται από την Array
τάξη. Η τάξη έχει get
και set
λειτουργεί, size
ιδιοκτησία και μερικές άλλες χρήσιμες λειτουργίες μελών.
Για να μάθετε λεπτομερώς σχετικά με τις συστοιχίες, επισκεφθείτε: Kotlin Arrays
Strings Kotlin
Στο Kotlin, οι συμβολοσειρές αντιπροσωπεύονται από την String
τάξη. Οι κυριολεκτικές συμβολοσειρές όπως "αυτό είναι μια συμβολοσειρά" εφαρμόζονται ως παρουσία αυτής της κλάσης.
Για να μάθετε λεπτομερώς για τις χορδές, επισκεφθείτε: Kotlin Strings
Προτεινόμενες αναγνώσεις
- Τύπος μετατροπής σε Kotlin
- Έξυπνα καστ στο Κότλιν
- Μηδενικοί τύποι Kotlin