Тип Symbol
Тип Symbol в Dart представляет собой символическое
имя, которое используется для идентификации сущностей
в программе: методов, полей, геттеров, сеттеров и операторов.
Символы часто применяются в рефлексии и метапрограммировании,
когда нужно сослаться на имя сущности динамически.
Создать символ можно с помощью конструктора Symbol,
в первый параметр которого передается строковое имя сущности.
Также в языке доступен литерал #, который позволяет
записать символ кратко, например #foo.
Синтаксис
Symbol(name)
#name
Пример
Давайте создадим символ с помощью конструктора
Symbol и выведем его в консоль:
void main()
{
Symbol sym = Symbol('abcde');
print(sym);
}
Результат выполнения кода:
Symbol("abcde")
Пример
Давайте создадим символ с помощью литерала #
и выведем его в консоль:
void main()
{
Symbol sym = #abcde;
print(sym);
}
Результат выполнения кода:
Symbol("abcde")
Пример
Давайте сравним два символа, созданных разными способами, и проверим, что они равны:
void main()
{
Symbol sym1 = Symbol('abcde');
Symbol sym2 = #abcde;
print(sym1 == sym2);
}
Результат выполнения кода:
true
Пример
Давайте получим символьное имя метода с помощью
MirrorSystem и выведем его в консоль:
import 'dart:mirrors';
void main()
{
Symbol sym = MirrorSystem.getSymbol('abcde');
print(sym);
}
Результат выполнения кода:
Symbol("abcde")