Kotlin de la zero variabile, tipuri de bază și matrice

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. 

Cerințe preliminare

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. 

1. Variabile

Î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"

2. Tip Inferență sau Deducere

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.  

3. Tipuri de bază

Î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. 

numere

Tipurile întregi disponibile în Kotlin sunt:

  • Lung-64 biți
  • Int-32 biți
  • Mic de statura-16 biți
  • byte-8 biți

Tipurile de puncte plutitoare sunt: 

  • Dubla-64 biți
  • Pluti-32 biți
val 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 ()

Tipul boolean

 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

Siruri de caractere

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

Arrays

În Kotlin, există două modalități principale de a crea o matrice: folosind funcția de ajutor arrayOf () sau constructorul Array ()

arrayOf () Funcţie

De 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 () Constructor

Acum, 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.

4. Observații

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

Concluzie

Î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+.


Cod