在单个下划线之后,双下划线作为函数/类方法的参数的目的是什么?

时间:2015-10-15 10:55:08

标签: dart dart-polymer

在我对Polymer Dart 1.0.0的探索中,我发现了事件和观察者方法,我被迫使用这种模式

@reflectable
void someEvent([_, __]) {
    ...
}

或观察者方法

@Observe('someField')
void someFieldChanged([_, __]) {
    ...
}

我理解方括号的用途,可选参数,我也理解如果你不关心传递的参数,你可以用下划线表示这个参数。令我惊讶的是我看到的例子使用双下划线__作为方括号之间的第二个符号。当我再次尝试仅使用一个下划线时,我得到一个重复的形式参数错误。你不关心的第二个参数是否与第一个不同?按照这个逻辑,如果我包括第三个,是否意味着它必须是一个三重下划线___?

感谢。

1 个答案:

答案 0 :(得分:8)

没什么特别的。 _ __ a只是变量标识符。 _通常用于命名未使用的变量。 这里有2个未使用的变量,第一个名为_,第二个名为__。 对于多个未使用的变量,通常会将它们命名为______ ...或_1_2_3 ...