Типы данных являются важнейшей частью любого языка программирования, и Dart не является исключением. В Dart типы данных определяют, что может содержать переменная, а также операции, которые могут быть выполнены с этой переменной. Мы рассмотрим различные типы данных, доступные в Dart, и то, как их можно использовать в ваших программах.
Примитивные типы данных
Dart имеет несколько примитивных типов данных, включая:
- int: используется для представления целочисленных значений.
- double: используется для представления значений с плавающей запятой.
- bool: используется для представления логических значений (true или false).
- String: используется для представления строк текста.
- dynamic: используется для представления любого типа данных.
Объявление типов данных в Dart
Чтобы объявить переменную с определенным типом данных в Dart, вы можете использовать следующий синтаксис:
тип_данных имя_переменной = значение;
Например, чтобы объявить целочисленную переменную с именем age со значением 30, вы могли бы использовать следующий код:
int age = 30;
Операции с типами данных
Как только вы объявили переменную с определенным типом данных в Dart, вы можете выполнять с ней операции. Например, вы можете использовать арифметические операторы для переменных int и double, такие как +, -, * и /. Вы также можете использовать операторы сравнения, такие как ==, > и <, для сравнения переменных одного и того же типа данных.
Преобразование типов
В некоторых случаях вам может потребоваться преобразовать переменную из одного типа данных в другой. Dart предоставляет несколько функций для выполнения преобразования типов, включая:
- toString(): преобразует переменную в строку.
- toInt(): преобразует переменную в значение int.
- ToDouble(): преобразует переменную в double.
Например, чтобы преобразовать целочисленную переменную age в строку, вы можете использовать функцию toString() следующим образом:
int age = 30;
String ageString = age.toString();
Объекты
Dart также имеет объекты, которые создаются с помощью классов. Вот некоторые распространенные типы объектов в Dart:
- List: Набор значений, таких как массив.
- Set: Набор уникальных значений.
- Map: Набор пар ключ-значение.
- Runes: Последовательность кодовых точек Юникода.
- Symbol: Представляет идентификатор, который используется для идентификации метода, свойства или оператора.
List
List — это тип коллекции в Dart, который может содержать несколько значений одного и того же типа данных. Чтобы объявить список:
List <тип данных> имя_списка = [значение1, значение2, ...];
Например, чтобы объявить список целых чисел с именем numbers со значениями 1, 2 и 3, вы могли бы использовать следующий код:
List<int> numbers = [1, 2, 3];
Вы можете получить доступ к отдельным элементам списка, используя их индекс, который начинается с 0. Например, чтобы получить доступ к первому элементу списка numbers, вы могли бы использовать следующий код:
int firstNumber = numbers[0];
Set
Set — это неупорядоченная коллекция уникальных элементов. Это означает, что набор может содержать данные любого типа, но каждый элемент в наборе должен быть уникальным. Если вы попытаетесь добавить повторяющийся элемент в набор, он будет просто проигнорирован.
Вот пример создания набора в Dart:
Set<String> mySet = {'apple', 'banana', 'cherry'};
В этом примере мы создаем набор строк, содержащий три элемента: ‘apple’, ‘banana’ и ‘cherry’.
Вы также можете создать пустой набор и добавить в него элементы позже, вот так:
Set<int> mySet = Set();
mySet.add(1);
mySet.add(2);
mySet.add(3);
В этом примере мы создаем пустой набор целых чисел, а затем добавляем к нему три элемента.
Map
Map — это еще один тип коллекций в Dart, которые позволяют хранить пары ключ-значение. Чтобы объявить map:
Map<тип_данных_ключей, тип_данных_значений> имя_карты = {ключ1: значение1, ключ2: значение2, ...};
Например, чтобы объявить коллекцию ages с отображением строк на целые числа cо значениями «John»: 30 и «Jane»: 25, используйте следующий код:
Map<String, int> ages = {"John": 30, "Jane": 25};
Вы можете получить доступ к отдельным значениям на карте, используя их ключи. Например, чтобы получить доступ к возрасту «John» в коллекции возрастов:
int johnAge = ages["John"];
Runes
Runes используется для представления последовательности кодовых точек Юникода. Кодовая точка — это уникальное число, представляющее определенный символ в Юникоде. Юникод — это стандартизированная система для представления текста в большинстве систем письменности мира.
Рунический литерал в Dart представлен обратной косой чертой, за которой следует буква «u» и четыре шестнадцатеричные цифры, представляющие кодовую точку. Например, кодовая точка для символа ‘€’ (знак евро) равна 0x20AC, поэтому соответствующий литерал руны в Dart будет \u20AC.
Вот пример использования рун в Dart:
void main() {
String str = 'Hello \u2665';
print(str); // Output: Hello ♥
}
В этом примере мы используем руну для обозначения символа сердца. \u2665 представляет кодовую точку Юникода для символа сердца, и когда мы печатаем строку, она отображает символ вместо кодовой точки.
Symbol
Symbol — это объект, представляющий идентификатор. Символы используются для идентификации переменных, методов и других программных элементов и часто используются в тех местах, где в других языках программирования использовались бы строки.
Символ создается путем добавления к идентификатору символа #. Например, следующий код создает символ, представляющий идентификатор mySymbol:
Symbol mySymbol = #mySymbol;
Как только символ создан, его можно использовать вместо строки для идентификации элементов программы. Например, вы можете использовать символ, чтобы получить ссылку на метод в классе:
void main() {
// Определяем символ для имени переменной
Symbol variableName = #myVariable;
// Создаем карту с символом в качестве ключа
Map<Symbol, dynamic> myMap = {variableName: 42};
// Получаем значение переменной, используя символ в качестве ключа
int variableValue = myMap[variableName];
// Выводим значение переменной
print(variableValue); // Получим: 42
}
В этом примере мы сначала определяем символ для имени переменной с помощью конструктора Symbol. Затем мы создаем карту с символом в качестве ключа и значением 42. Наконец, мы извлекаем значение переменной из карты, используя символ в качестве ключа, и выводим его на консоль.
Вывод типа данных
Чтобы узнать тип данных переменной в Dart, вы можете использовать свойство RuntimeType, которое возвращает тип объекта во время выполнения в виде Type object. Вот пример:
var name = 'Alice';
print(name.runtimeType); // Получим: String
var age = 30;
print(age.runtimeType); // Получим: int
В этом примере у нас есть две переменные name и age. Мы используем метод runtimeType для вывода типа данных каждой переменной на консоль. В первом случае метод runtimeType возвращает строку, которая является типом данных имени переменной name. Во втором случае runtimeType возвращает значение int, которое является типом данных переменной age.
Заключение
Типы данных являются фундаментальной концепцией в программировании Dart. Они определяют тип данных, которые может содержать переменная, и операции, которые могут быть выполнены с этими данными. Понимая различные типы данных, доступные в Dart, и то, как их использовать, вы можете писать более эффективные программы.
Комментарии
0