Ответ
В Dart, как и во многих языках, есть встроенные базовые типы, хотя технически в Dart всё является объектом. Основные типы, которые часто называют "примитивными" по аналогии с другими языками:
- int: Целые числа произвольной точности. Например:
int age = 25;илиint bigNumber = 999999999999999999;. - double: Числа с плавающей точкой двойной точности (64-битные). Например:
double pi = 3.14159;. - num: Родительский тип для
intиdouble. Полезен, когда переменная может содержать и то, и другое. - bool: Логический тип, принимающий значения
trueилиfalse. - String: Последовательность символов UTF-16. Поддерживает интерполяцию:
String greeting = 'Hello, $name!';. - List: Упорядоченная коллекция объектов.
List<int> numbers = [1, 2, 3];. - Map: Коллекция пар ключ-значение.
Map<String, dynamic> user = {'name': 'Alice', 'age': 30};. - Set: Неупорядоченная коллекция уникальных объектов.
Set<String> tags = {'dart', 'flutter'};. - Runes: Представляет Unicode-кодовые точки строки. Используется для работы с эмодзи и специальными символами:
String heart = 'u{2764}';. - Symbol: Редко используется в обычном коде, но важен для API, работающих с идентификаторами (например, для
dart:mirrorsили некоторых методовObject).
Важно: В Dart даже int и bool являются объектами и имеют методы (например, 42.toString() или true.toString()).
Ответ 18+ 🔞
А, ну это же про базовые типы в Dart! Давай разберёмся, что тут к чему, а то некоторые думают, что это как в старом добром C — прям примитивы, голые и неприкаянные. Ага, щас! В Dart всё — объекты, ёпта. Даже твоя любимая цифра 42 или true — это не просто битики в памяти, а полноценные объекты, у которых можно методы вызывать. Представляешь? 42.toString() — и пошло-поехало. Это не printf("%d"), тут всё с понтом.
Вот список этих так называемых «примитивов», хотя правильнее сказать — встроенных типов, которые тебе постоянно будут попадаться. Запоминай, а то будешь выглядеть как манда с ушами на собеседовании.
- int: Это для целых чисел. Не просто
int, а целые числа произвольной точности. То есть можешь писатьint bigNumber = 999999999999999999;и не бздеть, что не влезет. Хули, удобно же. - double: Числа с плавающей точкой. Для всяких
pi = 3.14159или цены на бензин, который дорожает с такой скоростью, что терпения ноль ебать. 64-битные, стандартно. - num: А это типа папаша для
intиdouble. Полезная штука, когда твоя переменная сегодня целая, а завтра — с хвостиком.num someNumber = 10; someNumber = 10.5;— и ни хуя себе, всё работает. - bool: Ну тут всё просто, как два пальца.
trueилиfalse. Либо да, либо нет. Либо работает, либо ты опять где-то впендюрил ошибку. Базис, хуле. - String: Строки, UTF-16. Можно в апострофах, можно в кавычках. А ещё есть интерполяция — это просто овердохуища удобно. Вместо конкатенации пишешь
'Привет, $name!'и не паришься. Красота. - List: Упорядоченный список, массив, коллекция — называй как хочешь.
List<int> numbers = [1, 2, 3];. Основа основ. Без списков — никуда. - Map: Это когда тебе нужна пара «ключ — значение». Типа телефонной книжки или JSON'а.
Map<String, dynamic> user = {'name': 'Вася', 'age': 30};. Ищешь по имени — получаешь возраст. Волнение ебать, когда ключ не находишь, но это уже другая история. - Set: Множество. Как список, но все элементы в нём уникальные. Засунул два раза одно и то же — второй раз не добавится. Полезно для хранения тегов, например:
Set<String> tags = {'dart', 'flutter', 'кофе'};. - Runes: А вот это для эстетов. Нужно, чтобы работать с Unicode-символами, которые одним UTF-16 символом не описываются. Типа эмодзи или сложных иероглифов.
String heart = 'u{2764}';— и вот тебе сердечко. Выглядит сложно, но иногда без этого пидарас шерстяной. - Symbol: Ну это вообще хуй с горы для обычного кода. Используется в каких-то глубоких метапрограммных штуках, типа рефлексии. В 99.9% проектов ты на него даже не посмотришь. Но знать, что он есть, надо — а то вдруг спросят, а ты сам от себя охуеешь.
И главное, что я уже говорил, но повторю, потому что это пиздопроебибна важная фишка: в Dart даже int и bool — это объекты. У них есть методы. Можно написать true.toString() и получить строку "true". Можно у числа вызвать isEven, чтобы проверить, чётное ли оно. Это не примитивы в классическом, ущербном понимании. Это объекты, просто они встроенные и оптимизированные дохуя. Так что запомни: в Dart всё — объект. Даже твоя пустая переменная, которая null — и та объект типа Null. Вот такой вот ёперный театр.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶