import是一个关键字,但以下工作正常:
import 'dart:io';
void main() {
import() {
print("Imported");
}
import();
}
- 这应该工作吗?
- 语言是否足够稳定,可以继续使用它?
- import与 say class有什么特别之处,哪个不起作用,其他关键字/可能是公平的游戏?
import是一个关键字,但以下工作正常:
import 'dart:io';
void main() {
import() {
print("Imported");
}
import();
}
是的,这应该有效。而且我认为是的,您可以合理地确定这将继续有效。为了解释,让我们看一下语言规范。
第 16.1.1 节(保留字)解释了保留字不能用作标识符;如果在需要标识符的地方使用了保留字,则会出现编译时错误。以下是保留字列表:assert
, break
, case
, catch
, class
, const
, continue
, default
, do
, else
,
enum
, extends
, false
, final
, finally
, for
, if
, in
, is
, , new
, null
, rethrow
, return
, super
, switch
, this
, throw
, true
, try
, var
, void
, . 注意这里没有提到。while
with
import
然后,第 12.30 节(标识符参考)解释说有一组内置标识符,如下所示:abstract
, as
, dynamic
, export
, external
, factory
, get
, implements
, import
, library
, operator
, part
, set
, static
, typedef
。如果使用内置标识符作为类、类型参数或类型别名的声明名称,则会出现编译时错误。请注意,它import
属于这一组——因此您不能将其用作类型,但您可以在其他地方使用它(例如在您的情况下,用作函数名称)。
12.30 节的非规范部分解释了差异:内置标识符是在 Dart 中用作关键字的标识符,但在 Javascript 中不是保留字。
请注意,在这个答案中,我引用了 Dart 语言规范 0.30 版的 PDF 形式。