次のような条件を想定します。
- 一部の操作は、結果を返す可能性を提供しません。
- コールバックとして宣言されたこの操作
- 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 では、この関数をどのように変換と呼びましたか?