Kotlin este un limbaj de programare modern care se compilează la Java bytecode. Este gratuit și open source, și promite să facă codificarea pentru Android chiar mai distractiv.
Kotlin este 100% interoperabil cu Java. Cu alte cuvinte, poate fi folosit împreună cu Java în același proiect. Deci, puteți să refaceți părți din codul dvs. Java către Kotlin și nu se va rupe. În afară de aceasta, este concis, expresiv și are o mare unealtă. Kotlin poate fi folosit pe back-end (pe partea de server), dar acum devine foarte multă atenție ca limbă pentru dezvoltarea aplicațiilor Android. Kotlin este acum susținut de Google ca un limbaj de primă clasă pentru dezvoltarea Android, astfel încât popularitatea lui Kotlin este pe punctul de a exploda!
În acest prim tutorial din seria Kotlin From Scratch, veți afla despre elementele de bază ale limbii: comentarii, variabile, tipuri simple, matrice și inferență de tip.
Pentru a urmări împreună cu mine, veți avea nevoie de pluginul Kotlin de pe Android Studio. Alternativ, puteți utiliza terenul de joc online sau IntelliJ IDEA Community Edition.
În Kotlin, utilizați Val
să declare o constantă sau var
cuvinte cheie pentru a declara o variabilă. Puteți specifica un tip, cum ar fi Şir
sau Int
după numele variabilei. În exemplul de mai jos, am declarat o constantă Nume
de tip Şir
cu Val
cuvinte cheie.
val firstName: String = "Chike"
Dar în curând veți da seama că în Kotlin, este adesea posibil să omiteți tipul din declarație și compilatorul nu se va plânge.
val lastName = "Mgbemena" // se va compila încă
În codul de mai sus, veți observa că nu am specificat explicit tipul Şir
. Codul de mai sus va funcționa, deoarece compilatorul a dedus implicit tipul folosind inferența de tip. Vom reveni la asta!
Diferența dintre Val
și var
cuvintele cheie sunt faptul că prima este imuabilă sau doar pentru citire (valoarea sa nu poate fi schimbată), în timp ce aceasta din urmă este mutabilă (valoarea sa poate fi schimbată).
val dateOfBirth = "29 martie, 1709" dateOfBirth = "25 decembrie, 1600" // nu poate fi schimbat var car = "Toyota Matrix" masina = "Mercedes-Maybach"
Rețineți că pentru o variabilă declarată cu var
cuvântul cheie care are tipul său dedus de compilator, atribuirea unei alte valori de alt tip nu va funcționa. Cu alte cuvinte, valoarea variabilei se poate schimba, dar tipul ei nu poate fi schimbat! De exemplu:
var var = 12 vârstă = "12 ani" // Eroare: nepotrivire tip
Este foarte recomandat să începeți prin a face variabilele dvs. imuabile prin declararea lor cu Val
cuvânt cheie, astfel încât să nu mențină prea multe state. Acest lucru face ca codul dvs. să fie mai sigur pentru multithreading, deoarece asigură faptul că variabilele dvs. nu pot fi modificate în mod neașteptat de alte fire.
Alt lucru pe care ar trebui să știți despre Val
cuvântul cheie este că îl puteți declara numai cu un tip și îi puteți atribui o valoare mai târziu. Dar puteți să atribuiți o valoare o singură dată.
val car Nume: String carName = "Toyota Matrix" // va compila
În Java, este posibil să declarați mai multe variabile de același tip pe o singură linie, dar acest lucru nu funcționează în Kotlin. În Kotlin, toate declarațiile variabile trebuie să fie pe propriile lor linii.
val carName = "BMW", streetName = "Oke street" // nu se va compila // aceasta va compila var carName = "BMW" var streetName = "Oke street"
Kotlin este un limbaj puternic tipărit care acceptă inferențe de tip sau deducere. Acesta este mecanismul folosit de compilator pentru a afla tipurile din context. Java nu are un mecanism de inferență de tip, ceea ce înseamnă că trebuie să declarați în mod explicit tipul fiecărei funcții sau variabile. Inferența de tip ajută la reducerea codului de boilerplate pe care trebuie să-l scrieți.
val țară = "Nigeria" // tipul este dedus de compiler val code = 234
Codul de mai sus s-ar compila chiar dacă nu am specificat explicit tipul pentru țara variabilă. Compilatorul este suficient de inteligent pentru a ști că țara este de tip Şir
, deoarece valoarea, "Nigeria", este un șir.
În Java, avem două tipuri de tip primitiv (de exemplu int, lung, boolean, octet, caractere etc.) și tipuri de referință (de exemplu, array, Şir
). Java folosește wrappers (cum ar fi java.lang.Integer
) pentru a face ca tipurile primitive să se comporte ca obiecte. Dar în Kotlin, nu există o astfel de distincție. În schimb, toate tipurile sunt obiecte.
Tipurile întregi disponibile în Kotlin sunt:
Lung
-64 bițiInt
-32 bițiMic de statura
-16 bițibyte
-8 bițiTipurile de puncte plutitoare sunt:
Dubla
-64 bițiPluti
-32 bițival myInt = 55 val myLong = 40L val myFloat = 34.43F val myDouble = 45.78 val myHexadecimal = 0x0F val myBinary = 0b010101
Puteți observa că am creat o Lung
literal prin adăugarea sufixului L
, si pentru Pluti
am adăugat sufixul F
sau f
. Numerele pot fi, de asemenea, scrise în notație hexazecimală folosind 0x
sau 0X
prefix și în binar folosind 0b
sau 0B
prefix. Rețineți că în toate aceste cazuri, Kotlin poate folosi o inferență de tip pentru a cunoaște tipul dorit.
val myLong = 19L val myLongAgain: Long = 40
Pentru a converti un număr de la un tip la altul, trebuie să invocați în mod explicit funcția de conversie corespunzătoare. Cu alte cuvinte, nu există o conversie implicită între tipurile de numere.
val myNumber = 400 val myNumberAgain: lung = myNumber // aruncă Eroare: nepotrivire de tip
Fiecare tip de număr are funcții de ajutor care convertesc de la un tip de număr la altul: toByte ()
, toInt ()
, prea lung()
, a pluti()
, a dubla()
, toChar ()
, toShort ()
.
val myInt = 987 val myLong = myInt.toLong ()
În codul de mai sus, convertim de la un întreg la un lung. De asemenea, putem face invers prin utilizarea metodei toInt ()
pe variabila lungă. Rețineți că aceasta va trunchia valoarea pentru a se potrivi dimensiunii mai mici a unui Int
tip dacă este necesar - fii atent atunci când convertești de la tipuri mai mari la cele mai mici!
De asemenea, puteți converti a Şir
într-un tip de număr.
val stringNumber = "101" val intValue = stringNumber.toInt ()
În codul de mai sus, am convertit variabila stringNumber
într-un Int
tip prin apelarea metodei toInt ()
pe variabila. Putem scrie acest lucru mai succint, apelând în schimb metoda direct pe șir:
val intValue = "101" .toInt ()
boolean
tip în Kotlin este același ca în Java. Valoarea sa poate fi adevărată sau falsă. Disjuncția operațiilor (||
), conjuncție (&&
) și negarea (!
) poate fi efectuată pe tipuri booleene, la fel ca Java.
val myTrueBoolean = adevărată val myFalseBoolean = falsă val x = 1 val y = 3 val w = 4 val z = 6 val n = x < z && z > w / n este adevărat
String-urile pot fi create fie cu citate duble, fie cu citate triple. În plus, caracterele de evadare pot fi folosite cu ghilimele duble.
val myString = "Acesta este un șir" val escapeString = "Acesta este un șir cu linie nouă \ n"
Pentru a crea un șir care cuprinde mai multe linii în fișierul sursă, folosim citate triple:
val multipleStringLines = "" Aceasta este prima linie Aceasta este a doua linie Aceasta este a treia linie "" "
Kotlin susține, de asemenea, interpolarea șirului sau șabloanele de șir. Aceasta este o modalitate mai ușoară de a construi șiruri dinamice decât concatenare, ceea ce folosim în Java. Folosind șabloane de șir, putem introduce variabile și expresii într-un șir.
val accountBalance = 200 val bancaMessage = "Soldul contului dvs. este $ balanța contului" // Soldul contului dvs. este de 200
În codul de mai sus, am creat un literal șir, iar în interiorul acestuia am făcut referire la o variabilă prin folosirea unui a $
înainte de numele variabilei. Rețineți că, dacă variabila nu este corectă sau nu există, codul nu va fi compilat.
Ce zici dacă trebuie să folosiți $
în șirul tău? Pur și simplu evadați \ $
! De asemenea, puteți apela metode dintr-un interpolat Şir
direct; trebuie să adăugați bretele curry $
să-l înfășoare.
val name = "Chike" val message = "Prima literă din numele meu este $ name.first ()" // Prima literă din numele meu este C
Un alt lucru minunat pe care îl puteți face este să realizați o anumită logică în interiorul coastelor creion atunci când creați o Şir
literal.
valvel = 40 val anotherMessage = "Sunteți $ dacă (vârsta> 60)" vechi "altceva" tineri "" // Sunteți tineri
În Kotlin, există două modalități principale de a crea o matrice: folosind funcția de ajutor arrayOf ()
sau constructorul Array ()
.
arrayOf ()
FuncţieDe exemplu, să creăm o matrice cu ajutorul unor elemente arrayOf ()
.
val myArray = arrayOf (4, 5, 7, 3)
Acum, pentru a accesa orice element, putem folosi indexul său: myArray [2]
. Rețineți că putem trece în valori de diferite tipuri în arrayOf ()
ca argumente și va funcționa în continuare - va fi o varietate de tip mixt.
val myArray = arrayOf (4, 5, 7, 3, "Chike", fals)
Pentru a impune că toate valorile matricei au același tip, de ex. Int
, declarăm un tip prin chemare arrayOf
sau intArrayOf ()
.
val myArray3 = arrayOf(4, 5, 7, 3, "Chike", false) // nu va compila valul myArray4 = intArrayOf (4, 5, 7, 3, "Chike", false)
De asemenea, avem alte funcții utilitare pentru a crea rețele de alte tipuri, cum ar fi charArrayOf ()
, booleanArrayOf ()
, longArrayOf ()
, shortArrayOf ()
, byteArrayOf ()
, si asa mai departe. În spatele scenei, utilizarea acestor funcții va crea o serie de tipuri primitive de tip Java. Cu alte cuvinte, intArrayOf ()
se va compila la tip primitiv Java obișnuit int []
, byteArrayOf ()
va fi byte []
, longArrayOf ()
va fi lung[]
, si asa mai departe.
Array ()
ConstructorAcum, să vedem cum să creăm o matrice Array ()
. Constructorul din această clasă necesită o dimensiune și o funcție lambda. Vom afla mai multe despre funcțiile lambda mai târziu în această serie, dar deocamdată înțelegeți că este un mod simplu, inline de a declara o funcție anonimă. În acest caz, funcția funcției lambda este de a inițializa matricea cu elemente.
val numereArray = Array (5, i -> i * 2)
În codul de mai sus, am trecut 5 ca mărimea matricei în primul argument. Al doilea argument are o funcție lambda, care ia indicele elementului matricei și apoi returnează valoarea care trebuie inserată la acel index în matrice. Astfel, în exemplul de mai sus, am creat o matrice cu elemente 0, 2, 4, 6 și 8.
Acesta este unul ușor. În Kotlin, comentariile sunt la fel ca în Java. Putem folosi fie comentarii de bloc, fie de linii:
/ * salut, acesta este un comentariu bloc cu mai multe rânduri. Aceasta este o altă linie. Acesta este altul din nou * / // acesta este un comentariu cu o singură linie
În acest tutorial ați învățat elementele de bază ale limbajului de programare Kotlin: variabilele, tipurile de bază, inferențele de tip, matricele și comentariile. În următorul tutorial din seria Kotlin From Scratch, veți afla despre buclele, gamele, condițiile, colecțiile și pachetele din Kotlin. Ne vedem în curând!
Pentru a afla mai multe despre limba Kotlin, vă recomand să vizitați documentația Kotlin. Sau verificați câteva dintre celelalte tutoriale ale noastre din Kotlin aici pe Envato Tuts+.