进口是keword,但以下工作正常:安全作为函数名
import 'dart:io';
void main() {
import() {
print("Imported");
}
import();
}
- 难道这工作?
- 语言足够稳定,使用它将继续工作?
- 关于导入与说类有什么特别之处,哪些不起作用,其他关键字/可能是公平游戏?
进口是keword,但以下工作正常:安全作为函数名
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 Language Specification version 0.30的PDF表单。
Ladicek您的镖师大师! – 2013-04-04 04:47:39