Por que um único caractere sublinhado é um nome ilegal para um parâmetro lambda?
Eu tentei nomear um parâmetro lambda_
, por exemplo. (uma versão reduzida):
Consumer<Object> c = _ -> {};
como eu queria indicar que um parâmetro estava sendo ignorado, mas recebi o seguinte erro do compilador:
o uso de '_' como identificador é proibido para parâmetros lambda
Isso foi uma surpresa para mim. Curiosamente,dois sublinhados é OK:
Consumer<Object> c = __ -> {}; // no compile error
Portanto, não é o caractere sublinhado em geral, mas um único.
Por que o nome de sublinhado único é especificamente proibido?