Podcast
Questions and Answers
Katero leto se šteje za začetek razvoja programskega jezika Kotlin?
Katero leto se šteje za začetek razvoja programskega jezika Kotlin?
- 2013
- 2010
- 2008
- 2011 (correct)
Katera izmed naslednjih trditev ne velja za programski jezik Kotlin?
Katera izmed naslednjih trditev ne velja za programski jezik Kotlin?
- Je statično tipiziran jezik.
- Lahko se prevede v bajt kodo JVM.
- Podpira samo objektno-usmerjeno programiranje. (correct)
- Je multiplatformni jezik.
Po čem je programski jezik Kotlin dobil ime?
Po čem je programski jezik Kotlin dobil ime?
- Po enem od ustvarjalcev jezika
- Po vrsti tulipana
- Po znanem matematiku
- Po otoku blizu St. Petersburga (correct)
Katera izmed naslednjih lastnosti ne velja za Kotlin?
Katera izmed naslednjih lastnosti ne velja za Kotlin?
Katero podjetje je leta 2019 priporočilo Kotlin za razvoj mobilnih aplikacij za Android?
Katero podjetje je leta 2019 priporočilo Kotlin za razvoj mobilnih aplikacij za Android?
Kateri ključni besedi se uporabljata v Kotlinu za deklaracijo spremenljivk?
Kateri ključni besedi se uporabljata v Kotlinu za deklaracijo spremenljivk?
Katere datotečne pripone so značilne za izvorno kodo v Kotlinu?
Katere datotečne pripone so značilne za izvorno kodo v Kotlinu?
Kaj pomeni, da je Kotlin interoperabilen z Javo?
Kaj pomeni, da je Kotlin interoperabilen z Javo?
Katera izmed naslednjih lastnosti je značilna za podatkovne razrede v Kotlinu?
Katera izmed naslednjih lastnosti je značilna za podatkovne razrede v Kotlinu?
Kje lahko najdete IntelliJ IDE?
Kje lahko najdete IntelliJ IDE?
Katera od naslednjih tipov podatkov ni osnovni številski tip v Kotlinu?
Katera od naslednjih tipov podatkov ni osnovni številski tip v Kotlinu?
Kaj velja pri statičnem tipiziranju, kot je v Kotlinu?
Kaj velja pri statičnem tipiziranju, kot je v Kotlinu?
Kaj je značilnost identifikatorjev v Kotlinu?
Kaj je značilnost identifikatorjev v Kotlinu?
Kaj se zgodi, če v Kotlinu poskušamo uporabiti lokalno spremenljivko, ki ni bila inicializirana?
Kaj se zgodi, če v Kotlinu poskušamo uporabiti lokalno spremenljivko, ki ni bila inicializirana?
Kakšna je privzeta vidnost, če ne določimo vidnosti razreda v Kotlinu?
Kakšna je privzeta vidnost, če ne določimo vidnosti razreda v Kotlinu?
Katera trditev pravilno opisuje uporabo Pair
, Triple
in Array
v Kotlinu?
Katera trditev pravilno opisuje uporabo Pair
, Triple
in Array
v Kotlinu?
Kaj omogoča zanka for
v Kotlinu?
Kaj omogoča zanka for
v Kotlinu?
Katero funkcionalnost ponuja Kotlin REPL (Read-Evaluate-Print-Loop)?
Katero funkcionalnost ponuja Kotlin REPL (Read-Evaluate-Print-Loop)?
Katero od naslednjih možnosti ne sodi med izhodne sekvence znakov v Kotlinu?
Katero od naslednjih možnosti ne sodi med izhodne sekvence znakov v Kotlinu?
Kateri od naslednjih operatorjev se uporablja za preverjanje enakosti v Kotlinu?
Kateri od naslednjih operatorjev se uporablja za preverjanje enakosti v Kotlinu?
Kaj je glavna funkcionalnost konstruktorja?
Kaj je glavna funkcionalnost konstruktorja?
Kaj pomeni, da je razred v Kotlinu označen s ključno besedo final
?
Kaj pomeni, da je razred v Kotlinu označen s ključno besedo final
?
Katera sintaksa je pravilna za deklaracijo polja celih števil v Kotlinu?
Katera sintaksa je pravilna za deklaracijo polja celih števil v Kotlinu?
Kaj v Kotlinu predstavlja interface
?
Kaj v Kotlinu predstavlja interface
?
Kdaj uporabimo sekundarne konstruktorje?
Kdaj uporabimo sekundarne konstruktorje?
Katera od naslednjih trditev ni pravilna glede lateinit
?
Katera od naslednjih trditev ni pravilna glede lateinit
?
Katera od naslednjih trditev pravilno opisuje razliko med val
in var
v Kotlinu?
Katera od naslednjih trditev pravilno opisuje razliko med val
in var
v Kotlinu?
Pri dedovanju v Kotlin, katera od naštetih funkcij se ne more biti podedovana?
Pri dedovanju v Kotlin, katera od naštetih funkcij se ne more biti podedovana?
Naslednja izjava se pojavi v Kotlin kodi:
val resultList = list.filterOnCondition { it -> isMultipleOf(it, multipleOf: 5) }
Kaj je tip parametra it
v tem izrazu?
Naslednja izjava se pojavi v Kotlin kodi:
val resultList = list.filterOnCondition { it -> isMultipleOf(it, multipleOf: 5) }
Kaj je tip parametra it
v tem izrazu?
Katera bližnjica se uporablja v IntelliJ IDEA za ponovno formatiranje kode?
Katera bližnjica se uporablja v IntelliJ IDEA za ponovno formatiranje kode?
Katera funkcionalnost ni značilna za IntelliJ IDEA?
Katera funkcionalnost ni značilna za IntelliJ IDEA?
Kateri operator se uporablja za klic metode razreda v Kotlinu?
Kateri operator se uporablja za klic metode razreda v Kotlinu?
Kaj pomeni kratica IDE
Kaj pomeni kratica IDE
Kateri izmed naštetih jezikov ni vključen v IntelliJ IDE?
Kateri izmed naštetih jezikov ni vključen v IntelliJ IDE?
Kateri sistem priporoča Kotlin za verzioniranje kode?
Kateri sistem priporoča Kotlin za verzioniranje kode?
Katere so povezljive vrednosti razreda?
Katere so povezljive vrednosti razreda?
Katero leto je bila ustvarjena prva revizija Git sistema?
Katero leto je bila ustvarjena prva revizija Git sistema?
Flashcards
Kaj je Kotlin?
Kaj je Kotlin?
Kotlin je statično tipiziran jezik, ki ga je razvil JetBrains.
val in var
val in var
Ključni besedi za deklariranje spremenljivk v Kotlinu.
Poimenovani parametri
Poimenovani parametri
Omogoča, da pri klicu funkcije podamo vrednosti parametrov z njihovimi imeni.
Več vrednosti funkcij
Več vrednosti funkcij
Signup and view all the flashcards
Podpičja
Podpičja
Signup and view all the flashcards
Varnost izvedbe kode
Varnost izvedbe kode
Signup and view all the flashcards
when izraz
when izraz
Signup and view all the flashcards
Razširitvene funkcije
Razširitvene funkcije
Signup and view all the flashcards
Podatkovni razredi
Podatkovni razredi
Signup and view all the flashcards
Async / await
Async / await
Signup and view all the flashcards
Lastnosti
Lastnosti
Signup and view all the flashcards
Podatkovni razredi
Podatkovni razredi
Signup and view all the flashcards
Ni preverjenih izjem
Ni preverjenih izjem
Signup and view all the flashcards
Prekrivanje operatorjev
Prekrivanje operatorjev
Signup and view all the flashcards
Funkcije višjega reda
Funkcije višjega reda
Signup and view all the flashcards
Pametno pretvarjanje (casting)
Pametno pretvarjanje (casting)
Signup and view all the flashcards
Osnovni tipi
Osnovni tipi
Signup and view all the flashcards
Številski tipi
Številski tipi
Signup and view all the flashcards
Referenčni tipi
Referenčni tipi
Signup and view all the flashcards
val
val
Signup and view all the flashcards
var
var
Signup and view all the flashcards
if izraz
if izraz
Signup and view all the flashcards
while zanka
while zanka
Signup and view all the flashcards
for zanka
for zanka
Signup and view all the flashcards
final
final
Signup and view all the flashcards
open
open
Signup and view all the flashcards
IntelliJ IDEA
IntelliJ IDEA
Signup and view all the flashcards
Paket
Paket
Signup and view all the flashcards
Init blok
Init blok
Signup and view all the flashcards
Konstruktor
Konstruktor
Signup and view all the flashcards
Statično tipiziranje
Statično tipiziranje
Signup and view all the flashcards
Literali
Literali
Signup and view all the flashcards
Study Notes
Uvod v Kotlin
- Kotlin je bil predstavljen leta 2011.
- Razvilo ga je podjetje JetBrains, znano po orodjih kot so PhpStorm, ReSharper in PyCharm.
- Trenutna različica je 2.1.10 (januar 2025).
- Je multiplatformni jezik, deluje na Androidu, JVM, iOS, Windows, Linux, JavaScript, WebAssembly in LLVM.
- Datotečne končnice so .kt, .kts in .ktm.
- Podpira več paradigem programiranja: objektno-usmerjeno, funkcijsko, imperativno, deklarativno, generično in sočasno.
- Ime je dobil po otoku blizu St. Petersburg.
- Je nov statično tipiziran jezik.
- Odpravlja pomanjkljivosti Jave in se prevede v bajt kodo JVM, JavaScript in Kotlin native.
- Ustvarjen je bil s poudarkom na interoperabilnosti z Javo, kar omogoča skupno uporabo razredov Kotlin in Java v istem projektu.
- Deluje brezhibno z IntelliJ Idea in ima dobro podporo JetBrains.
- Pridobiva na popularnosti in je vedno pogosteje sprejet.
- Od leta 2019 ga Google priporoča za razvoj mobilnih aplikacij za Android.
Značilnosti Kotlina
- Ključni besedi sta
val
invar
. - Podpira poimenovanje parametrov funkcij.
- Funkcije lahko vračajo več vrednosti.
- Podpičja niso obvezna.
- Zagotavlja varnost izvedbe kode z omejevanjem NullPointerException.
- Uporablja
if
,try-catch
inwhen
. - Podpira vgrajene (inline) in razširitvene funkcije.
- Ima koncepte funkcijskega programiranja, vključno s funkcijami višjega reda.
- Podpira pametno pretvarjanje tipov (casting) in async / await.
- Ima podatkovne razrede in lastnosti (podobno kot v C#).
- Ne zahteva preverjanja izjem.
- Omogoča prekrivanje operatorjev.
Tipi v Kotlinu
- Osnovni tipi so Boolean, Characters, Number in Arrays.
- Številski tipi so Byte, Short, Int, Long, Float in Double.
- Referenčni tipi so razredi, vmesniki in String.
- Poseben tip je Nothing.
- Razlikuje med osnovnimi številskimi tipi (celi, integral types) in osnovnimi številski decimalnimi tipi (non-integral types).
- Obstajajo tudi nepredznačeni številski tipi (UByte, UShort, UInt, ULong).
- Char je znakovni tip z enojnimi narekovaji in podpira izhodne sekvence, kot so
\t
,\b
,\n
,\r
,\'
,\"
,\\
,\$
,\uFF00
ter Unicode. - Boolean podpira operacije
||
,&&
in!
. - String uporablja dvojne narekovaje in omogoča dostop do znakov preko indeksa (npr.
name[0]
).
Polja
- V Kotlinu so polja predstavljena z razredom Array.
- Uporablja se lahko prekriti operator
[]
(funkcije get/set). - Polje se ustvari s funkcijo
arrayOf(...)
ali s konstruktorjem Array(...). - Obstajajo polja primitivnih tipov: ByteArray, ShortArray, IntArray, ki ne dedujejo od Array, vendar imajo enake metode.
Statično tipiziranje
- Kotlin je statično tipiziran programski jezik.
- Pri statičnem tipiziranju se spremenljivkam določi tip, medtem ko dinamično tipizirani jeziki tega ne zahtevajo.
- Vrednosti imajo v statičnih jezikih tip, ki ga pri dinamičnih lahko spreminjamo.
- Statično tipiziranje omogoča izogib velikemu številu programskih napak in večjo hitrost izvajanja.
Izrazi in operatorji
- Literali so decimalna števila (npr. 26, 123L), binarna števila (npr. 0b00000101), decimalna števila (npr. 71.5, 342.5e10) in števila s plavajočo vejico (npr. 123.4f).
- Števila lahko vsebujejo podčrtaje za boljšo berljivost.
- Podpira konverzijo z metodami
toByte()
,toShort()
,toInt()
,toLong()
,toDouble()
... - Agregati so npr.
intArrayOf(100, 200, 300, 400)
, na katerih izvedemo npr. funkcijoforEach
. - Vključuje funkcijski klic (klic metod, operatorji) in dostop do konstant in spremenljivk.
- Glavni aritmetični operatorji so +, -, *, / in %.
- Pomembna je prioriteta operatorjev.
Spremenljivke
- Poznamo instančne, lokalne spremenljivke in parametre.
- Kotlin ne podpira razrednih spremenljivk (static fields).
- Shranljive vrednosti so vrednosti osnovnega tipa in reference.
- Polja in objekte je mogoče selektivno ažurirati.
- Izraz
if
je v Kotlinu izraz, kar pomeni, da lahko vrača vrednost. - Ukazi so
while
indo while
(nedoločne iteracije), ter zankafor
(določne iteracije). - Kotlin ne podpira vzporednih ukazov.
Deklaracije
- Deklariramo lahko spremenljivke, konstante, metode, razrede in vmesnike.
- Sekvenčne deklaracije določijo tip spremenljivke (npr.
var value1 = 10 // variable declaration
- Doseg je statičen.
Identifikatorji
- So občutljivi na velike in male črke.
- Sestavljeni so iz Unicode znakov, začnejo se s črko ali znakom "_", ne smejo vsebovati presledkov ali posebnih znakov.
- Poznamo poimenovanja in povezljive vrednosti (spremenljivke, metode, razredi, vmesniki).
Rezervirane besede
- So ključne besede (hard keywords) in mehke rezervirane besede (soft keywords) – rezervirane samo v določenem kontekstu.
Formalni parametri, argumenti
- Formalni parameter je identifikator v deklaraciji metode, argument pa je vrednost, ki se prenese v metodo.
- Parametre lahko ujemamo po vrstnem redu ali po imenu.
- Parameter je lahko poljubnega tipa (osnovnega ali referenčnega).
- Funkcije višjega reda obstajajo, kar pomeni, da lahko pošljemo metodo kot parameter v drugo metodo.
Objektno-usmerjenost
- Kotlin podpira razredno objektno usmerjenost.
- Podpira razredno dedovanje (enkratno), nasledniško iskanje metode in asimetrični zaključek metode.
- Sinonimi za podrazred so subclass, derived class, extended class, child class; za nadrazred pa superclass, base class, parent class.
- Korenski razred je Any ali Any?, ki ne deduje od nikoder. Če razred ne deduje eksplicitno iz nobenega razreda, implicitno deduje iz Any.
- Podrazred podeduje vse komponente nadrazreda (polja, metode, vgnjezdene razrede), razen konstruktorjev, ki se jih lahko pokliče.
Razredi in vmesniki
- Razred se deklarira s ključno besedo
class
. - Vmesnik (interface) je pogodba med razredom in zunanjim svetom, razred lahko implementira več vmesnikov.
Konstruktorji
- Omogočajo inicializacijo lastnosti razreda.
- Poznamo primarni in sekundarni konstruktor.
- Primarni konstruktor je del glave razreda in ima omejeno sintakso ter ne more vsebovati druge kode, lahko pa je del inicializacijskega bloka.
Vidnost v razredih
- Določimo jo lahko za lastnosti in funkcije.
- Vidnost je lahko private (samo znotraj razreda), public (povsod), protected (v razredu in podrazredih) ter internal (znotraj modula).
- Če ne določimo vidnosti, se privzeto uporabi public.
- Metode
set
inget
se v Kotlinu ustvarijo samodejno, rezervirani besedi stafield
invalue
. Omogočajo dodatno logiko. Lahko so tudi privatne. - Za lokalne spremenljivke ni privzetih vrednosti, dostop do neinicializirane spremenljivke povzroči napako v času prevajanja.
- Razredi so privzeto
final
, kar onemogoča dedovanje, razen če jih označimo zopen
.
IntelliJ IDEA
- Je vodilni IDE za Javo, razvito s strani JetBrains.
- Je eden najbolj priljubljenih IDE-jev, s podporo za Kotlin, Javo, JavaScript, Groovy in Scala.
- Podpira Git, SVN in Mercurial ter ima orodja za baze podatkov.
- Dokumentacija je na voljo na: https://www.jetbrains.com/idea/download/.
- Ima številne bližnjice na tipkovnici.
Dodatno
- Podpira razhroščevanje in preoblikovanje kode.
- Na voljo je verzioniranje s sistemom Git.
- Funkcionalnost Git je integrirana v IntelliJ IDEA.
- GitHub je spletno mesto z repozitoriji predavanj (https://github.com/tomazkosar/CourseProgrammingLanguages.git).
- Omogoča oddajo kode (commit) in nalaganje kode (push).
- Priporočljiva je uporaba Kotlin REPL v IntelliJ IDEA (Read-Evaluate-Print-Loop).
- Spletna stran za Kotlin: https://play.kotlinlang.org/
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.