В следующей таблице перечислены слова, которые язык Dart обрабатывает особым образом
abstract 2 | dynamic 2 | implements 2 | show 1 |
as 2 | else | import 2 | static 2 |
assert | enum | in | super |
async 1 | export 2 | interface 2 | switch |
await 3 | extends | is | sync 1 |
break | external 2 | library 2 | this |
case | factory 2 | mixin 2 | throw |
catch | false | new | true |
class | final | null | try |
const | finally | on 1 | typedef 2 |
continue | for | operator 2 | var |
covariant 2 | Function 2 | part 2 | void |
default | get 2 | rethrow | while |
deferred 2 | hide 1 | return | with |
do | if | set 2 | yield 3 |
Избегайте использования этих слов в качестве идентификаторов. Однако при необходимости ключевые слова, помеченные надстрочными индексами, могут быть идентификаторами:
- Слова с верхним индексом 1 являются контекстными ключевыми словами, которые имеют значение только в определенных местах. Они действительные идентификаторы везде;
- Слова с верхним индексом 2 являются встроенными идентификаторами. Чтобы упростить задачу переноса кода JavaScript в Dart, эти ключевые слова являются допустимыми идентификаторами в большинстве мест, но их нельзя использовать в качестве имен классов или типов или в качестве префиксов импорта;
- Слова с верхним индексом 3 являются новыми, ограниченными зарезервированными словами, относящимися к поддержке асинхронности, которая была добавлена после выпуска Dart 1.0. Вы не можете использовать
await
илиyield
в качестве идентификатора в любом теле функции, помеченном async,async *
илиsync *
. - Все остальные слова в таблице являются зарезервированными словами, которые не могут быть идентификаторами.