Dart (ohjelmointikieli)
ohjelmointikieli From Wikipedia, the free encyclopedia
Remove ads
Dart on Googlen kehittämä ohjelmointikieli, joka on suunniteltu web-sovellusten tekemiseen.[1] Se julkistettiin 10. lokakuuta 2011 käydyssä GOTO-konferenssissa Aarhusissa.[2]
Dart on vaihtoehto JavaScriptille.[3] Dartin suunnittelutavoitteina olivat:[4]
- rakenteellinen mutta joustava kieli web-kehitykseen
- tuttu ja luonnollinen opeteltava ohjelmoijille
- korkea suorituskyky
Kieli suunniteltiin valinnaiselle tyyppijärjestelmälle, jolloin pienissä projekteissa ei tarvitse käyttää tyypitystä, mutta tyypitys on saatavilla suurien projektien tarpeisiin.[5][4] Kieli suunniteltiin suoritettavaksi joko suoraan virtuaalikoneessa tai käännettynä JavaScriptiksi, jolloin sitä voidaan suorittaa verkkoselaimissa.[4]
Remove ads
Esimerkki
main() {
print('Hello, Dart!');
}
Muuttujat voidaan määritellä kertomatta tyyppiä, jolloin sen tyyppi päätellään sille annetusta arvosta:[7]
void printInteger(int aNumber) {
print('The number is $aNumber.'); // tulosta arvo
}
// ohjelman suoritus alkaa main()-funktiosta
void main() {
var number = 42; // määrittele ja alusta muuttuja
printInteger(number); // kutsu funktiota
}
Ominaisuudet
Dart tukee olio-ohjelmointia ja tukee luokkia sekä yksinkertaista perintää. Dart on valinnaisesti tyypitetty ja tukee geneeristä ohjelmointia.[8]
Dart tukee staattista tyypitystä (tyyppimerkinnät muuttujien määrittelyissä ja funktioiden paluutyypeissä) ja rajoissa.[9] Staattiset tyypit tarkistetaan kun ohjelmaa suoritetaan "tarkistetussa" moodissa eikä niillä ole vaikutusta "tuotantomoodissa": staattiset tyypit ovat käytössä vain ja ainoastaan (jos ja vain jos) suoritetaan tarkistetussa moodissa.[9] Dart voi päätellä tyypin ja voi käyttää dynaamista tyypitystä ajonaikaiseen tarkistukseen.[10]
Dart tukee poikkeuksien heittämistä ja käsittelyä.[7]
Alustusarvot
Muuttujat, joiden arvo voi olla null (nullable) ovat oletuksena null
. Muun tyyppiset muuttujat (non-nullable) on asettava nollaksi.[7][11] Muuttujille, joiden arvo voi olla null
tyypin yhteydessä käytetään kysymysmerkkiä:[11]
int? aNullableInt = null;
late
-määrityksellä alustamattoman muuttujan käyttö antaa virheen kun sitä käytetään ensimmäisen kerran.[7] late
käytetään "laiskaan alustukseen" ja kertomaan ei-null tyyppiselle muuttujalle että sen arvo alustetaan esittelyn jälkeen.[7]
late String description;
void main() {
description = 'Feijoada!';
print(description);
}
Dartissa on null
arvojen kanssa käyttöön erityiset sijoitus- ja vertailuoperaattorit ??
ja ??=
.[12]
Kysymysmerkkiä (?
) ja huutomerkkiä (!
) käytetään nullable-tyyppien käsittelyyn erityistarkoituksella.[13]
Vakiot
Muuttujat, joiden arvo ei muutu alustamisen jälkeen (arvo pysyy vakiona) voidaan määrittää final
ja const
-määrityksillä: const
on käännöaikainen vakio ja final
voidaan asettaa vain kerran (const
on implisiittisesti myös final
).[7]
const bar = 1000000; // tyyppi päätelty automaattisesti
const double atm = 1.01325 * bar; // vakio ja määritelty tyyppi
Funktiot
Funktioille on käytettävissä "oikotie" kun sen sisältö on vain yksi lauseke:[7]
bool isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
// voidaan kirjoittaa muodossa:
bool isNoble(int atomicNumber) => _nobleGases[atomicNumber] != null;
Parametrit
Parametrit voivat olla sijainninmukaisia tai nimettyjä.[7] Parametrit voivat olla valinnaisia jos niitä ei ole määritelty vaadituiksi.[7]
void enableFlags({bool? bold, bool? hidden}) {...}
Funktiokutsussa argumentit asetetaan nimen avulla:[7]
enableFlags(bold: true, hidden: false);
Parametrit voidaan asettaa vaadituiksi required
avainsanalla, jolloin puuttuva parametri aiheuttaa virheen.[7] Parametreille voi määritellä oletusarvoja.[7]
Remove ads
Käyttökohteet
Muun muassa Googlen Flutter käyttöliittymäkirjasto käyttää Dartia.[14][15] Dartista tulevat sekä kieli että ajonaikainen ympäristö Flutterille.[10] Dart tukee ajonaikaista kääntämistä (JIT) ja etukäteen kääntämistä (engl. ahead of time, AOT).[10]
Lähteet
Aiheesta muualla
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads