„Swift vs Kotlin“ - svarbūs skirtumai

„Swift“ ir „Kotlin“ yra dvi puikios kalbos, skirtos atitinkamai „iOS“ ir „Android“ plėtrai. Jie abu turi labai modernias funkcijas ir sintaksę, kurios gali nepaprastai padėti kuriant savąsias programas.

Greitas
„Swift Enums“ yra galingesni.
„Swift“ neturi duomenų klasės.
„Swift“ neturi nei deleguotų klasių, nei deleguotų savybių.
„Swift“ neleidžia komentuoti.
Kotlinas
Kotlino klasės yra galutinės pagal nutylėjimą.
Kotlin neturi jokių duomenų ar duomenų pagal vertę.
Kotlin neturi kuokštų.
Kotlin neturi jokių tipologijų.
Kotlinas neturi sargybinio pareiškimo.
„Swift“ - - - - - - - Sintaksės skirtumas- - - - —Kotlin
func - - - - - - - - - - - - - - - - - - - - - įdomus
tegul - - - - - - - - - - - - - - - - - - - - - —val
nulis - - - - - - - - - - - - - - - - - - - - - - niekinis
protokolas - - - - - - - - - - - - - - - - - - - eisena
init - - - - - - - - - - - - - - - - - - - - konstruktorius
ir daug daugiau ... .. Žemiau rasite keletą kitų.
Labas pasauli
„Swift“:
spausdinti („Sveikas, pasaulis!“)
Kotlin:
println („Sveikas, pasaulis!“)
Kintamieji ir konstantos
„Swift“:
var myVariable = 42
„myVariable“ = 50
tegul myConstant = 42
Kotlin:
var myVariable = 42
„myVariable“ = 50
val myConstant = 42
Aiškūs tipai
„Swift“:
tegul explicitDouble: dvigubai = 70
Kotlin:
val explicitDouble: dvigubai = 70,0
Tipo konvertavimas
„Swift“:
let label = "plotis yra"
tegul plotis = 94
let widthLabel = etiketė + eilutė (plotis)
Kotlin:
val label = "plotis yra"
val plotis = 94
val widthLabel = etiketė + plotis
Styginių interpoliacija
„Swift“:
tegul obuoliai = 3
tegul apelsinai = 5
let fruitSummary = "Aš turiu \ (obuoliai + apelsinai)" +
                   "vaisių gabaliukai".
Kotlin:
val obuolių = 3
val apelsinai = 5
val fruitSummary = "Aš turiu $ {obuolių + apelsinų}" +
                   "vaisių gabaliukai".
Range operatorius
„Swift“:
tegul vardai = [„Anna“, „Aleksas“, „Brianas“, „Džekas“]
tegul skaičius = vardai.skaičiuoti
i i 0 .. 
Kotlin:
val vardai = arrayOf („Anna“, „Aleksas“, „Brianas“, „Džekas“)
val count = vardai.skaitas ()
už (i 0..skaita - 1) {
    println („Asmuo $ {i + 1} vadinamas $ {vardais [i]}“)
}
// 1 asmuo vadinamas Anna
// 2 asmuo vadinamas Aleksu
// 3 asmuo vadinamas Brianu
// Asmuo 4 vadinamas Džeku
Kolekcijos (masyvai)
„Swift“:
var shoppingList = [„šamas“, „vanduo“,
    "tulpės", "mėlyni dažai"]
shoppingList [1] = "butelis vandens"
Kotlin:
val shoppingList = arrayOf („šamas“, „vanduo“,
    "tulpės", "mėlyni dažai")
shoppingList [1] = "butelis vandens"
Tuščios kolekcijos
„Swift“:
let emptyArray = [eilutė] ()
let emptyDictionary = [eilutė: plūduriuoja] ()
Kotlin:
val emptyArray = arrayOf  ()
val emptyMap = mapOf  ()
Funkcijos
„Swift“:
linksmas sveikinimas (_ vardas: stygos, _ diena: stygos) -> stygos {
    grįžti „Sveiki \ (vardas), šiandien yra \ (diena)“.
}
pasveikinti („Bobas“, „Antradienis“)
Kotlin:
linksmas sveikinimas (vardas: stygos, diena: stygos): stygos {
    grįžti „Sveiki, vardas, šiandien yra USD diena“.
}
pasveikinti („Bobas“, „Antradienis“)
„Tuple Return“
„Swift“:
func getGasPrices () -> (dviguba, dviguba, dviguba) {
    grąža (3.59, 3.69, 3.79)
}
Kotlin:
duomenų klasė „GasPrices“ (val a: dviguba, val b: dviguba,
     val c: dviguba)
linksmos „getGasPrices“ () = „GasPrices“ (3,59, 3,69, 3,79)
Aukštesnės eilės funkcija (žemėlapis)
„Swift“:
tegul skaičiai = [20, 19, 7, 12]
numeriai.map {3 * $ 0}
Kotlin:
val skaičiai = sąrašasOf (20, 19, 7, 12)
numeriai.map {3 * it}
Rūšiuoti
„Swift“:
var mvableArray = [1, 5, 3, 12, 2]
mvableArray.sort ()
Kotlin:
listOf (1, 5, 3, 12, 2) .sortuotas ()
Klasės
„Swift“:
klasės forma {
    var numberOfSides = 0
    func simpleDescription () -> Styga {
        return "Forma su \ (numberOfSides) pusėmis".
    }
}
var forma = forma ()
forma.numberOfSides = 7
var shapeDescription = shape.simpleDescription ()
Kotlin:
klasės forma {
    var numberOfSides = 0
    įdomus paprastas aprašymas () =
        "Forma su $ numberOfSides pusėmis."
}
var forma = forma ()
forma.numberOfSides = 7
var shapeDescription = shape.simpleDescription ()
Protokolas
„Swift“:
protokolas Pavadinamas {
    func name () -> Styga
}
func f  (x: T) {
    spausdinti („Vardas yra“ + x.vardas ())
}
Kotlin:
sąsaja pavadinama {
    linksmas vardas (): Styga
}
įdomus f  (x: T) {
    println („Vardas yra“ + x.name ())
}

Pratęsimai

„Swift“:
pratęsimas dvigubai {
    var km: dvigubas {return self * 1_000.0}
    var m: dvigubas {grįžti į save}
    var cm: dvigubas {return self / 100.0}
    var mm: dvigubas {return self / 1_000.0}
    var ft: dvigubas {return self / 3.28084}
}
tegul vienas colis = 25,4 mm
spausdinti („Vieno colio dydis yra \ (vieno colio) metrai“)
// atspausdinta „Vieno colio dydis yra 0,0254 metro“
tegul threeFeet = 3.ft
spausdinti („Trijų pėdų yra \ (trijų pėdų) metrai“)
// spausdinama „Trys pėdos yra 0.914399970739201 metrai“
Kotlin:
val Double.km: Double get () = this * 1000
val Double.m: Double get () = tai
val Double.cm: Double get () = this / 100
val Double.mm: Double get () = this / 1000
val Double.ft: Double get () = this / 3.28084
val oneInch = 25,4 mm
println („Vienas colis yra vienas doleris colio metrais“)
// atspausdinta „Vieno colio dydis yra 0,0254 metro“
val threeFeet = 3.0.ft
„println“ („Trys pėdos yra trys USD kojomis“)
// spausdinama „Trys pėdos yra 0.914399970739201 metrai“

Siūlau perskaityti šią nuorodą, kad gautumėte daugiau informacijos.

Norėdami gauti greitą interviu klausimą, spustelėkite nuorodą.