2

次のような条件を想定します。

  • 一部の操作は、結果を返す可能性を提供しません。
  • コールバックとして宣言されたこの操作
  • typedef の使用は推奨されません
  • 一部の操作では、結果を返すことができます。
  • コールバックとして宣言されたこの操作
  • typedef の使用は推奨されません

そのようなシナリオを想定します:

void main() {
  executeVoidOperation(methodNonVoid);  // Must throw if method void?
  executeNonVoidOperation(methodVoid);  // Must throw if method non-void?
}

int methodNonVoid() {
  return 0;
}

void methodVoid() {
}

void executeVoidOperation(void operation()) {
  operation(); // Must throw if method non-void?
}

void executeNonVoidOperation(dynamic operation()) {
  var result = operation(); // Must throw if method void?
  print(result); // Result of void operation? (if such passed as argument)
}

表示された結果:

null

質問(どこが間違っていますか?):

  • Nullオブジェクトです。これがどこからnull現れたのas resultか ( )void関数が結果を返すことができない場合 ( であってもnull)?
  • Dart の異なる戻り値の型を持つ関数は、同じ (競合しない) 型と見なされますか?
  • Dart では、この関数をどのように変換と呼びましたか?
4

1 に答える 1