当前位置: 首页 > 知识库问答 >
问题:

将`(即下划线)作为唯一参数传递给Dart语言函数意味着什么?

慕凡
2023-03-14

我正在学习飞镖,经常看到下面这个成语:

未来。然后()=

我也见过这样的代码:

代码uture.then

这两个例子在功能上有区别吗?也就是,传递_作为Dart函数的参数是做什么的?

考虑到Dart使用\uuu作为声明私有函数的前缀,这尤其令人困惑。


共有3个答案

贺高飞
2023-03-14

非常常见的用法,是当我们需要用Navigator推送一条新路线,但生成器中的上下文变量不会被使用时:

// context is going to be used
Navigator.of(context).push(MaterialPageRoute(
  builder: (context) => NewPage(),
));


// context is NOT going to be used
Navigator.of(context).push(MaterialPageRoute(
  builder: (_) => NewPage(),
));
蔚楷
2023-03-14

该表达式类似于节点中的“回调”。表达式与异步任务有关。

首先记住=

您可以在Dart中的基于未来的API和函数中了解更多信息。谢啦

田硕
2023-03-14

它是一个名为\uu的变量,通常是因为您不打算使用它,而是将其丢弃。例如,您可以使用名称xfoo(41;之间的区别很简单,一个函数接受一个参数,另一个不接受。

对于非私有的标识符,不要使用前导下划线。

异常:未使用的参数可以命名_ , __, ___, 等。这发生在回调之类的事情上,在回调中,您传递了一个值,但您不需要使用它。给它一个仅由下划线组成的名称是指示未使用该值的惯用方法。

https://dart.dev/guides/language/effective-dart/style

 类似资料:
  • 问题内容: 我已经熟悉Android框架和Java,并希望创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network- ops/connecting.html 码:

  • 问题内容: 如何在不执行“父”函数或不使用函数的情况下将函数作为参数传递?(因为我已经读到它是不安全的。) 我有这个: 它可以工作,但是问题是在调用函数时触发,而不是在函数中使用时触发。 根据我所读的内容,我可以使用来解决它,但这不是最佳实践。如何在JavaScript中将函数作为参数传递? 问题答案: 您只需要删除括号: 然后,这将传递函数而不先执行它。 这是一个例子:

  • 我正在尝试通过:如果流文件; 在我的主()中,到一个名为“FIFO”的类的构造函数:FIFO(文件); 在FIFO(FIFO.h)的头文件中,我有: 在FIFO.cc,我有: 我一直喜欢(还有更多,我只是粘贴其中一个): 在文件包括从/usr/lib/gcc/x86_64-redhat linux/4.4.7/…/…/…/…/包含/c /4.4.7/bits/localefwd.h: 43,从/u

  • 我正试图将dataframe列作为参数传递 但是得到错误 :33:错误:类型不匹配; 找到:org.apache.spark.sql.column 必需:int val df_new=df.withcolumn(“age_category”,ageclassification.agecategory(df(“age”))

  • 我正在使用一个第三方库函数,它有大量的位置参数和命名参数。在我的代码中,从多个点使用相同的参数/值调用该函数。 为了便于维护,我不想在代码中多次硬编码几十个相同的参数。我希望有一种方法可以在数据结构中存储它们一次,所以我只需要传递数据结构。按照以下思路: 假设我调用的函数的签名如下: 假设在我的代码中,我想用 for arg1, for arg2 for arg4 (而且我没有使用arg3)。 我

  • 在参考Flutter教程时,我遇到了一个下划线。 null