0

Flutter と Dart から数か月離れていましたが、Flutter 2 がリリースされたのを見て、Flutter プロジェクトの 1 つを更新することにしました。すべてがとてもクールで、Flutter と Dart が大好きです。

今、ゼロの安全性の問題に遭遇しました。

Dart はメソッドに不満を持っており、プロジェクトのビルド時に取得します。

Error: A non-null value must be returned since the return type 'String' doesn't allow null.

それが文句を言う方法

static String _fmt(String fmt, Object? val, int maxlen) {

  if (null == val) {
    return '';
  }

  // -- Ad support for thousand separators. --
  if (fmt.startsWith('%,') && fmt.endsWith('d')) {
    int i = val as int;
    val = i.toThousandString(',');
    fmt = '%${fmt.substring(2, fmt.length - 1)}s';
  }
  String s = sprintf(fmt, [val]);

  // -- Truncate if text overflows. --
  if (s.length > maxlen) {
    s = s.substring(0, maxlen);
    if (s.length > 1) {
      return s.substring(0, s.length - 2) + '..';
    } else if (s.length > 0 ) {
      return s.substring(0, s.length - 1) + '.';
    }
  } else {
    return s;
  }
}

コードは醜いですが、それを除いて、このメソッドの何かが null を返す可能性があることがわかりません。

それとも私は愚かですか?

4

1 に答える 1