如何安全地调用(使用空检查)功能类型的变量

时间:2019-06-16 04:05:58

标签: dart

是否有一种简单的方法可以通过null检查调用该函数?

Function(String) onTextReady;

是否有一种简单的方法可以安全地调用此函数。 例如,在Kotlin中,我将使用invoke:

onTextReady?.invoke('Hello world');

我尝试了onTextReady?.('Hello world');,但Dart不支持。

1 个答案:

答案 0 :(得分:2)

好,简短的回答,不(与接线员联系)。 Dart中可识别空值的 review.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("market://details?id=com.xxxx.packageName")); startActivity(intent); } }); 运算符仅适用于成员调用对象,而不能直接对函数执行进行空值检查。

在这种情况下,它可以工作:

?.

您需要手动对其进行检查(!= null)以确保其为null安全:

class MyClass {
  Function(String s) onTextReady = (s) => print(s);
}

main() {
  var nullObject;
  nullObject?.onTextReady('null'); // do nothing

  var notNull = MyClass();
  notNull?.onTextReady('not null'); // print 'not null'
}