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つけて簡潔に書く。以上です