dart Future型を戻り値とする関数(メソッド)
Futureを返すメソッドの理解があやしかったので実験してみた
バージョン : Dart 2.6.0 (build 2.6.0-dev.1.0 d6c6d12ebf)
Future<int>
Future<int> _future() { // OK // return Future.value(1); // Warning : info: This function has a return type of 'Future<int>' // 何も返さない // NG : error: The return type 'int' isn't a 'Future<int>' // return 1; }
Future<int> async
Future<int> _future() async { // OK // return 1; // return Future.value(1); // Warning : info: This function has a return type of 'Future<int>' // 何も返さない }
Future<void>
Future<void> _future() { // OK // return Future.value(null); // Warning : info: This function has a return type of 'Future<void>' // 何も返さない // NG : error: Missing return value after 'return' // return; }
Future<void> async
Future<void> _future() async { // OK // return; // 何も返さない // return Future.value(null); }
・結論
async つければ Futureかえしても値をそのまま返しても良いみたい。Futureつけるときはasyncつけて簡潔に書く。以上です