Primitiv ma'lumotlar turlari
Ma'lumotlar turi ob'ekt qaysi qiymatlarni saqlashi mumkinligini aniqlaydi. Dartning bir qator ibtidoiy o'rnatilgan turlari mavjud:
boolean turi
Raqamli turlar (int, double)
String turlari (String, Runes)
Belgi
bool
Bool turi ikkita qiymatni ifodalaydi: true va false
1
2
|
var isEnabled = false;
bool isAlive = true;
|
int
int turi 64 bitdan ortiq bo'lmagan butun sonlarni ifodalaydi, aniq o'lcham platformaga bog'liq. Misol uchun, Dart VM uchun qiymatlar -263 dan 263 - 1 gacha. JavaScript-ni kompilyatsiya qiluvchi Dart -253 dan 253 - 1 gacha bo'lgan qiymatlar oralig'iga ega JavaScript raqamli tizimidan foydalanadi.
Har qanday butun sonlar int qiymatlari sifatida qabul qilinadi:
1
2
|
int x = 8;
var y = -5;
|
ikki barobar
Ikkilamchi tip xotirada 64 bitni egallagan suzuvchi nuqtali raqamlarni ifodalaydi.
Butun va kasr qismlarini ajratuvchi sifatida nuqta bo'lgan barcha kasr raqamlari ikki xil turdagi qiymatlar sifatida ko'rib chiqiladi:
1
2
3
|
double x = 8.8;
var y = -5.3;
var z = 0.09;
|
Double tipidagi o'zgaruvchiga butun son qiymati ham berilishi mumkin, bu holda u avtomatik ravishda kasr qiymatiga aylanadi:
1
2
|
double x = 8; // x = 8.0
print(x); // 8.0
|
String
Satrlar UTF-16 da kodlangan belgilar ketma-ketligini ifodalovchi String turi bilan ifodalanadi. Satrni aniqlash uchun bitta va ikkita tirnoqdan foydalanishingiz mumkin:
1
2
3
4
|
String tom = "Tom";
String sam = 'Sam';
var kate = "Kate";
var alice = 'Alice';
|
Agar siz ko'p qatorli satrni belgilashingiz kerak bo'lsa, u uch qo'shtirnoq ichiga olinadi:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
void main() {
var multiline = '''
Многострочная
строка
''';
print(multiline);
String users = """
Список пользователей
Том
Сэм
""";
print(users);
}
|
Interpolyatsiya yordamida biz boshqa o'zgaruvchilarning qiymatlarini qatorga kiritishimiz mumkin:
1
2
3
|
String name = "Tom";
int age = 35;
String info = "Name: $name Age: $age";
|
Qatorga qiymatlarni kiritish uchun o'zgaruvchining oldiga dollar belgisi $ ($ nomi, $ yoshi) qo'yiladi, natijada $ nomi o'rniga nom o'zgaruvchining qiymati kiritiladi va o'rniga $ yoshi - $ yoshi o'zgaruvchisining qiymati.
Runes
Runes ham satrlarni ifodalaydi, lekin Stringdan farqli o'laroq, Runes Unicode belgilar ketma-ketligidir. Sukut bo'yicha barcha kotirovka qilingan satrlar (ham bitta, ham juft) String turi bo'lganligi sababli, Runes o'zgaruvchisini aniqlash uchun maxsus sintaksis talab qilinadi:
1
2
3
4
5
6
7
|
void main() {
Runes input = Runes('\u041F\u0440\u0438\u0432\u0435\u0442');
Runes text = Runes('Привет');
print(text);
print(String.fromCharCodes(input));
print(String.fromCharCodes(text));
}
|
Ushbu turdagi konstruktor Runes turining qiymatini aniqlash uchun ishlatiladi. Ya'ni, boshida turning nomi - Runes bor, undan keyin konstruktorga o'tgan argument qavs ichida ko'rsatilgan. Biz konstruktorga UTF-16 da kodlangan kod birliklari to'plamini (yangi Runes ('\ u041F \ u0440 \ u0438 \ u0432 \ u0435 \ u0442')) yoki oddiy belgilar to'plamini (yangi Runes ("Salom") o'tkazishimiz mumkin. )).
Runes ob'ektining matnli tasvirini olish uchun String.fromCharCodes usuli qo'llaniladi.
Belgi
Barcha turlar ichida eng kam qo'llaniladigan Symbol turi odatda kutubxonalar va sinflar kabi API elementlariga murojaat qilish uchun ishlatiladigan ramziy identifikatorlarni ifodalaydi. Ushbu turdagi ob'ektni aniqlash uchun # xesh belgisi ishlatiladi:
1
2
|
Symbol libName = #foo_lib;
var className= #foo;
|
|