双下划线的目的是什么,在单下划线之后,作为函数/ class 方法的参数?
What is the purpose of the double underscore, after a single underscore, as a parameter to a function / class method?
在探索 Polymer Dart 1.0.0 时,我发现对于事件和观察者方法,我不得不使用这种模式
@reflectable
void someEvent([_, __]) {
...
}
或观察者方法
@Observe('someField')
void someFieldChanged([_, __]) {
...
}
我明白了方括号是干什么用的,可选参数,我也明白如果你不关心传递的参数,可以用下划线来表示这个参数。令我惊讶的是,我看到的示例使用双下划线 __ 作为方括号之间的第二个符号。当我再次尝试只使用一个下划线时,出现重复的形参错误。为什么您不关心的第二个参数必须与第一个参数不同?按照这个逻辑,如果我包括第三个,是否意味着它必须是三重下划线 ___?
谢谢。
没什么特别的。 _
as __
as a
只是变量标识符。 _
通常用于命名未使用的变量。
这里有 2 个未使用的变量,第一个命名为 _
,第二个命名为 __
。
对于多个未使用的变量,通常将它们命名为 _
、__
、___
... 或 _1
、_2
、_3
...
在探索 Polymer Dart 1.0.0 时,我发现对于事件和观察者方法,我不得不使用这种模式
@reflectable
void someEvent([_, __]) {
...
}
或观察者方法
@Observe('someField')
void someFieldChanged([_, __]) {
...
}
我明白了方括号是干什么用的,可选参数,我也明白如果你不关心传递的参数,可以用下划线来表示这个参数。令我惊讶的是,我看到的示例使用双下划线 __ 作为方括号之间的第二个符号。当我再次尝试只使用一个下划线时,出现重复的形参错误。为什么您不关心的第二个参数必须与第一个参数不同?按照这个逻辑,如果我包括第三个,是否意味着它必须是三重下划线 ___?
谢谢。
没什么特别的。 _
as __
as a
只是变量标识符。 _
通常用于命名未使用的变量。
这里有 2 个未使用的变量,第一个命名为 _
,第二个命名为 __
。
对于多个未使用的变量,通常将它们命名为 _
、__
、___
... 或 _1
、_2
、_3
...