我正在学习Dart,并经常看到以下成语:
someFuture.then((_) => someFunc());
我还看到了这样的代码:
someOtherFuture.then(() => someOtherFunc());
这两个例子之间有功能上的区别吗?A.k.a.,将_作为参数传递给Dart函数是做什么的?
考虑到Dart使用_作为声明私有函数的前缀,这尤其令人困惑。
发布于 2014-08-27 00:24:36
它是一个名为_的变量,通常是因为您计划不使用它并丢弃它。例如,您可以使用名称x或foo。(_)和()之间的区别很简单,因为一个函数有一个参数,而另一个没有。
不对非私有标识符使用前导下划线。 异常:未使用的参数可以命名为_、__、___等。这种情况发生在回调中,其中传递了一个值,但不需要使用它。给它一个完全由下划线组成的名称是表示值不被使用的惯用方式。
发布于 2021-05-15 09:41:00
下划线(_)通常表示您不会在块中使用此参数。这只是编写代码的一种简洁的方式。
假设我有一个具有两个参数useful和useless的方法,并且我没有在代码块中使用useless:
void method(int useful, int useless) {
print(useful);
}由于不会使用useless变量,所以我应该将上述代码编写为:
void method(int useful, int _) { // 'useless' is replaced with '_'
print(useful);
}https://stackoverflow.com/questions/25517016
复制相似问题