相关疑难解决方法(0)

在 dart/flutter 中调用函数时传递下划线 _ "_" (_) 是什么意思?

在阅读 dart 代码时,我经常看到一些仅使用下划线 _ 参数调用的函数。它让我烦恼了一段时间,并且由于 flutter 改进了它的分析消息,我有一些线索......但我觉得我并没有真正掌握这个概念:-(

昨天我写了以下内容进行测试:

when(mockDevice.getLocalPath()).thenAnswer(() async => fileFolder);
Run Code Online (Sandbox Code Playgroud)

并得到以下分析

错误:无法将参数类型“Future Function()”分配给参数类型“Future Function(Invocation)”。

添加下划线时,它工作正常。

when(mockDevice.getLocalPath()).thenAnswer((_) async => fileFolder);
Run Code Online (Sandbox Code Playgroud)

我遇到的最可怕的例子来自@remi rousselet 编写的 provider package

builder: (_, counter, __) => Translations(counter.value),
Run Code Online (Sandbox Code Playgroud)

它来自提供者示例:

Widget build(BuildContext context) {
  return MultiProvider(
    providers: [
      ChangeNotifierProvider(builder: (_) => Counter()),
      ProxyProvider<Counter, Translations>(
        builder: (_, counter, __) => Translations(counter.value),
      ),
    ],
    child: Foo(),
  );
}

class Translations {
  const Translations(this._value);

  final int _value;

  String get title => 'You clicked $_value times';
}
Run Code Online (Sandbox Code Playgroud)

dart flutter

18
推荐指数
1
解决办法
2297
查看次数

标签 统计

dart ×1

flutter ×1