Μια γρήγορη ματιά στην Java vs Kotlin

Το Kotlin είναι μια νέα γλώσσα προγραμματισμού από τον JetBrains, τον κατασκευαστή των καλύτερων IDE στον κόσμο.

Πέρυσι γύρω από αυτό το χρονικό διάστημα η Google ανακοίνωσε την Kotlin, ως άλλη επίσημη γλώσσα για το Android App Development στο Google I / O'17.

Σε ένα χρόνο, υπάρχουν τόσα πολλά άρθρα σχετικά με το Kotlin και οι προγραμματιστές μεταναστεύουν στο Kotlin με ταχείς ρυθμούς.

Στην Airtel Product Engineering, πάντα δοκιμάζουμε τις νέες τεχνολογίες και τις υιοθετούμε στα προϊόντα μας. Ακολουθεί η ανάλυση μου στο Kotlin.

Σε αντίθεση με τα περισσότερα άρθρα που περιγράφουν μια γλώσσα, θα αποφύγω να χρησιμοποιήσω πάρα πολλούς όρους προγραμματισμού. Αντ 'αυτού, θα χρησιμοποιήσω απλά αγγλικά, έτσι ώστε να είναι χρήσιμο για φρεσκάδες.

Ας ξεκινήσουμε με μερικά από τα τρέχοντα αγαπημένα μου.

  1. Ορισμός μεταβλητών:

Στην Java έχουμε τελικό για μεταβλητή Read Only.

// JAVA
τελικός χαρακτήρας a = 'A'; // Μόνο ανάγνωση του τύπου `Char`
char β = 'Β'. // Μεταβλητός τύπος `Char`
b = 'C'.

Στο Kotlin, έχουμε Val για Read Only Variable & var για μεταβλητή μεταβλητή.

// KOTLIN
val a = 'A' // Μόνο η ανάγνωση του τύπου 'Char' συνάγεται
var b = 'B' // Συμπερασματικός τύπος `Char '
b = 'C'

2. Πρότυπα συμβολοσειράς:

Στην Java, χρησιμοποιήσαμε το String.format για τη μορφοποίηση των Strings

// JAVA
int a = 20;
τελικός String t1 = String.format ("Η ηλικία Amy είναι% d", a);
α = 25;
τελικός String t2 = String.format ("% s, τώρα είναι% d.", t1.replace ("είναι", "ήταν"), a);

Στο Kotlin, μπορούμε να χρησιμοποιήσουμε έκφραση σε πρότυπο.

// KOTLIN
var a = 20
val t1 = "Η ηλικία της Amy είναι $ a"
α = 25
val t2 = "$ {t1.replace (" είναι "," ήταν ")}, τώρα είναι $ α."

Δείτε τη διαφορά, ο Kotlin είναι τόσο ευανάγνωστος και καθαρός.

3. Ασφάλεια μηδενικής ισχύος (τύπου Nullable και μη μηδενικοί τύποι)

Στην Java, από προεπιλογή όλα είναι μηδενικά. Έτσι, απαιτήσαμε πολλούς ελέγχους για να αποφύγουμε το NPE

// JAVA
String name = null;

// Ασφαλής τρόπος αποφυγής NPE
αν (null! = όνομα) {
    int μήκος = όνομα.όγκος ();
}}
// Πέει NPE
int length2 = name.length ();

Το σύστημα τύπου Kotlin στοχεύει στην εξάλειψη του κινδύνου μηδενικών αναφορών από τον κώδικα, γνωστού και ως λάθος δισεκατομμυρίων δολαρίων.

Ένας κανονικός String δεν μπορεί να κρατήσει μηδενική, αλλά για να επιτρέψει Nullable String, πρέπει να δώσουμε τον τύπο ως String;

// KOTLIN
όνομα όνομα: String = "Java"
name = null // Σφάλμα μεταγλωττιστή
val lastName: String; = "Kotlin"
lastName = null // Έργα Fine

Κατά την πρόσβαση στις ιδιότητες των μεταβλητών, ο κανονικός String δεν θα πετάξει NPE αλλά String; θα ρίξει NPE.

Υπάρχουν μερικοί τρόποι για να το αποφύγετε:

  • Χρήση if-else Normal Check
// Κανονικός έλεγχος
μήκος length = αν (lastName! = null) lastName.length else -1
  • Χρησιμοποιώντας το SafeCall; Operator (Ένα από τα καλύτερα χαρακτηριστικά στο Kotlin)
// Ασφαλής κλήση
μήκος κύματος = lastName; .length // Έξοδος: lastName μήκος ή null

Αυτό επιστρέφει lastName.length, αν lastName δεν είναι null, αλλιώς null. Ασφαλείς κλήσεις; είναι πραγματικά χρήσιμες σε αλυσίδα αναφορών όπως emp? .addr? .house Εάν κάποια από τις ιδιότητες είναι null, τότε θα επιστρέψει null, αλλά όχι NPE.

Εάν δεν θέλουμε να επιστρέψουμε null, και θέλουμε να επιστρέψουμε κάποια προκαθορισμένη τιμή. Μπορούμε να χρησιμοποιήσουμε τον Elvis Operator;

// Χρήση του Elvis Operator
μήκος length = lastName? .length?: -1 // Έξοδος: μήκος lastName ή -1
  • Χρησιμοποιώντας !! Χειριστής (Για τους λάτρεις της NPE)
// Χρησιμοποιώντας !! Χειριστής
μήκος length = lastName !!. length // Ρίξτε NPE, αν το lastName είναι null

4. Επιλέξτε Έλεγχος & Αυτόματη χύτευση

Στην Java, χρησιμοποιούμε instanceof για να ελέγξουμε τον τύπο, και στη συνέχεια πρέπει να πληκτρολογήσετε cast για να αποκτήσετε πρόσβαση στις ιδιότητές του.

// JAVA
αν (όνομα instanceof String) {
    int μήκος = (όνομα συμβολοσειράς) .length ();
}}

Στο Kotlin, χρησιμοποιούμε είναι να ελέγξουμε τον τύπο, και ο μεταγλωττιστής έξυπνα τύπου το ρίχνει. Awesome

// KOTLIN
αν (όνομα είναι String) {
    μήκος κύματος = όνομα.μήκος
}}

Περισσότερες πληροφορίες παρέχονται εδώ.

5. Όταν εκφράζεται

Για Ex: Θέλω να βρω το Αντικείμενο είναι 1 ή 5 ή String ή κάποιο άλλο είδος.

Στην Java, πρέπει να χρησιμοποιήσουμε την εντολή exampleof & switch για να εκτελέσουμε την παραπάνω εργασία.

// JAVA
ιδιωτικός διακόπτης συμβολοσειράς Παράδειγμα (όνομα αντικειμένου) {
    εάν (όνομα instanceof Ακεραίου) {
        Integer tempInt = (Ακέραιος) όνομα;
        διακόπτης (tempInt) {
            περίπτωση 1:
            περίπτωση 5:
                επιστροφή "1 ή 5".
            Προκαθορισμένο:
                επιστροφή "Όχι 1 ή 5".
        }}
    } else αν (όνομα instanceof String) {
        επιστροφή "String";
    }}
    επιστροφή "Not Int ή string";
}}

Στο Κοτλίν, όταν η έκφραση το κάνει τόσο απλό. Είναι αυτόματο cast cast και μπορούμε να χρησιμοποιήσουμε τόσες πολλές εκφράσεις μέσα του. Πάνω από αυτό, είναι τόσο ευανάγνωστο.

// KOTLIN
διασκέδαση ότανExample (όνομα: Οποιοδήποτε): String =
        όταν (όνομα) {
            1, 5 -> "1 ή 5"
            είναι Int -> "Δεν είναι 1 ή 5"
            είναι String -> "String"
            αλλιώς -> "Not Int ή string"
        }}

6. Τάξεις

Στην Java, πρέπει να δημιουργήσουμε getter και setters για την πρόσβαση στις ιδιότητες μιας τάξης.

// JAVA
δημόσιος κλάδος Πελάτης {
    ιδιωτικό όνομα συμβολοσειράς.

    δημόσιος πελάτης (όνομα στοιχειοσειράς) {
        this.name = όνομα;
    }}

    δημόσιο String getName () {
        όνομα επιστροφής;
    }}

    δημόσιο κενό setName (όνομα στοιχειοσειράς) {
        this.name = όνομα;
    }}
}}

Στο Κοτλίν δεν έρχονται πλέον όλοι οι θεατές. Αλλά μπορούμε να δημιουργήσουμε, αν θέλετε να ορίσετε προσαρμοσμένες.

// KOTLIN
πελάτης κλάσης (var όνομα: String)

Αυτό είναι το καλύτερο στο Kotlin. Όταν το είδα, μια λέξη ήρθε στο μυαλό μου WOW !!! Είναι φοβερό

Λοιπόν, απλά μια σύντομη ματιά σε μερικά από τα πράγματα που κάνουν τη ζωή μας καλύτερη. Ευχαριστώ για την ανάγνωση της πρώτης μου θέσης στο Medium. Μπορείτε να έχετε πρόσβαση σε όλα τα παραπάνω αποσπάσματα κώδικα στο σύνδεσμο.

Αν θέλετε να αρχίσετε να χρησιμοποιείτε το Kotlin, παρακαλώ ρίξτε μια ματιά στην επίσημη τεκμηρίωσή τους. Είναι πραγματικά καλό.

Για να δείτε περισσότερες ενημερώσεις, απλώς ακολουθήστε μου στο μέσο ή το Twitter. Αφήστε τις σκέψεις σας στο τμήμα σχολίων ή επικοινωνήστε μαζί μου στο Twitter και θα συνεχίσω να προσθέτω στη σειρά.

Εάν σας αρέσει, θυμηθείτε να χτυπήσετε. Εάν κρατάτε πατημένο το κουμπί χτύπημα, μπορείτε να αφήσετε περισσότερα χτυπήματα.