【问题标题】:how do parse in dart 2.12.0? [duplicate]如何在 dart 2.12.0 中解析? [复制]
【发布时间】:2021-04-22 09:24:21
【问题描述】:

我只是将我的 dart-sdk 更新到 2.12.0 然后发生错误

import 'dart:io';
void main() {
  var waktuNow = DateTime.now();
  var waktuSekarang = waktuNow.year;
  stdout.write('Masukkan tahun kelahiran kamu : ');
  var tahunLahir = int.parse(stdin.readLineSync());
  hitungTahun(waktuSekarang, tahunLahir);
}

void hitungTahun(int a, int b) {
  var lahir = a - b;
  print('umur kamu : $lahir ');
}

错误:参数类型“字符串?”不能分配给参数类型“字符串”。 (argument_type_not_assignable 在 [myapps] bin\coba2.dart:6)

dart 2.12.0中如何输入int?

【问题讨论】:

标签: dart


【解决方案1】:

这是因为您现在在 Dart 中使用了 null 安全性。您现在需要明确哪些变量可以为空,并确保这些可能为空的变量是“空检查”

stdin.readLineSync() 可能会返回null value。所以你需要检查这种情况。

var s = stdin.readLineSync();
if(s != null) {
  var tahunLahir = int.parse(s);
  hitungTahun(waktuSekarang, tahunLahir);
}

您还应该小心int.parse,因为这可能会导致错误。如果你不是 100% 确定你总是会得到一个“可解析的”int。使用 int.tryParse 也可以返回 null。所以需要进一步检查。

【讨论】:

  • 啊,非常感谢,除了使用 readlinesync 之外,还有其他输入 int 的方法吗?喜欢使用 age = data.nextInt;在java中
  • 遗憾的是,环顾四周,这似乎不是一个选择。 stackoverflow.com/questions/55007696/…
  • 那么,在 dart 中输入数据的唯一方法是使用 readlinesync 吗?我是飞镖的新手
猜你喜欢
  • 2020-01-18
  • 1970-01-01
  • 2014-06-10
  • 2021-11-12
  • 2012-07-16
  • 2017-04-08
  • 1970-01-01
相关资源
最近更新 更多