我尝试命名一个lambda参数_
,例如(一个减少版本):
Consumer
因为我想表示一个参数被忽略,但我得到了以下编译器错误:
对于lambda参数禁止使用'_'作为标识符
这对我来说是一个惊喜.有趣的是,两个下划线是可以的:
Consumer
因此,它不是一般的下划线字符,而是单个字符.
为什么单下划线名称是专门禁止的?
原因在Brian Goetz本人的这篇文章中表达出来:
我们从标识符的空间"回收""_"的句法不动产以用于未来的语言特征.但是,因为现有的程序可能会使用它,所以它是对现有语法位置8中出现的标识符的警告,以及lambda形式的错误(因为没有lambda的现有代码.)