Какие примитивные типы данных есть в Dart?

«Какие примитивные типы данных есть в Dart?» — вопрос из категории Dart Core, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В 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()).