这里有什么问题? 这是我用 Flutter 编写的第一个程序,但它失败了。请帮帮我,这是教程中角色的复制角色
import 'dart:io';
void main()
{
stdout.writeln('Type in your name please');
String input = stdin.readLineSync();
stdout.writeln('Hi $input nice to meet u ');
}
答案 0 :(得分:3)
此错误与“空安全”有关,readLineSync
返回“字符串?”,并且您的变量 input
不接受空值。此代码可以帮助您:
void main(List<String> args) {
print('Type in your name please:');
var input = stdin.readLineSync();
print('Hi $input, nice to meet you');
print('Done!');
}
答案 1 :(得分:0)
首先,这是飞镖,而不是颤振。 Flutter 是框架。如果您目前正在学习 dart,InteliJ IDEA 是最好的 dart ide。有免费的社区版。
这样的事情会起作用:
import 'dart:io';
void main(){
stdout.write("Type in your name please: ");
var name = stdin.readLineSync();
stdout.writeln('Hi $input nice to meet u ');
}
stdin.readLineSync();
实际上并不返回字符串,因此您需要使用 var(推断类型)。使用 name.runtimeType;
查找它返回的类型。
答案 2 :(得分:0)
你也可以把字符串改成字符串?像这样:
import 'dart:io';
void main()
{
stdout.writeln('Type in your name please');
String? input = stdin.readLineSync();
stdout.writeln('Hi $input nice to meet u ');
}
答案 3 :(得分:-1)
这只是因为在 Dart 3 中添加了一个称为 Null Safety 的功能,用于保证输入不会为 Null 所以你只需要添加一个 '!'在你的“stdin.readLineSync()”中,你就完成了这里是代码:
import 'dart:io';
void main()
{
stdout.writeln('Type in your name please');
String input = stdin.readLineSync()!;
stdout.writeln('Hi $input nice to meet u ');
}