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



在我对Polymer Dart 1.0.0的探索中,我发现对于事件和观察者方法,我不得不使用这个模式

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

或在观察者方法上

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

我明白方括号是什么,可选参数,我也明白,如果你不关心传递的参数,你可以用下划线表示这个参数。让我感到惊讶的是,我看到的例子使用了双下划线__作为方括号之间的第二个符号。当我试图再次使用单个下划线时,我得到了一个重复的形式参数错误。为什么第二个你不关心的参数必须和第一个不同?根据这个逻辑,如果我包含第三个,是否意味着它必须是一个三重下划线___?

谢谢。

没什么特别的。_, __, a只是变量标识符。_通常用于命名未使用的变量。这里有两个未使用的变量,第一个名为_,第二个名为__。对于多个未使用的变量,通常将它们命名为_, __, ___…或_1, _2, _3

在Polymer 3.0中,单下划线表示受保护的属性或方法,双下划线表示类的私有成员。

请查看此参考以获取更多信息:https://polymer-library.polymer-project.org/3.0/docs/devguide/properties

最新更新