有没有办法改变Scala的_root_名称空间“关键字”?

时间:2013-07-11 08:43:53

标签: scala

至于我_root_关键字看起来很尴尬。它看起来像Python风格或黑客。

_root_.launch.Booster3

我想它可以被语言架构师改为像这样的

_.launch.Booster3

或者可能像使用global ::

的C#样式
global::launch.Booster3

http://msdn.microsoft.com/en-us/library/cc713620.aspx

root.launch.Booster3

其中“root”将被视为关键字。

1 个答案:

答案 0 :(得分:4)

_是一个糟糕的选择,因为它是“任何适合”的占位符,而_root_任何适合的东西。

root是一个糟糕的选择,因为人们已经大概使用了root - 添加新关键字可能会造成很大的破坏性。由于不鼓励使用_各种名称,因此选择具有_标识符的标识符具有特殊含义是最安全的事情之一。

global::是一个糟糕的选择,因为global::都是独立的标识符,不是保留的关键字。看起来您正在尝试将全局项目添加到包含其余包名称的列表中。在Scala中,::是列表连接(cons);在名称空间中查找它比查找完全有效的_root_稍微不寻常的标识符更为刺耳。

我同意_root_看起来很尴尬(但请注意,它只会出现在包层次结构存在名称冲突的尴尬情况下)。但是这样的事情有充分的理由,现在它已经完成,需要一个非常非常有说服力的理由来改变它。

相关问题