Μεταβλητές και βασικοί τύποι Kotlin

Πίνακας περιεχομένων

Σε αυτό το σεμινάριο, θα μάθετε σχετικά με τις μεταβλητές, τον τρόπο δημιουργίας τους και τους βασικούς τύπους δεδομένων που υποστηρίζει ο 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 με υπογραφή δύο).-231231-1
  • Παράδειγμα:
 fun main(args : Array) ( val score: Int = 100000 println("$score") )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 100000

Εάν εκχωρήσετε έναν ακέραιο μεταξύ σε μια μεταβλητή χωρίς να προσδιορίζει σαφώς το είδος της, η μεταβλητή θα είναι τύπου. Για παράδειγμα,-231231-1Int

 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 to 263-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, either true or false.
  • 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

ενδιαφέροντα άρθρα...