如何从飞镖中的用户输入中读取整数输入
How to read an integer input from the user input in dart
我实际上不知道如何从输入控制台获取整数输入。然后经过一些研究我尝试了这个。
我的代码:
import 'dart:io';
void main() {
stdout.write("Enter a number: ");
int num1 = int.parse(stdin.readLineSync());
print(num1);
}
- 但是不起作用,显示错误信息,
ERROR: The argument type 'String?' can't be assigned to the parameter type 'String' because 'String?' is nullable and 'String' isn't.
- 然后终于知道dart2.12+版本dart引入了null safety。在空安全环境中正确执行此操作的任何建议。
试试这个
import 'dart:io';
void main()
{
// Asking for favourite number
print("Enter your favourite number:");
// Scanning number
int n = int.parse(stdin.readLineSync());
// Printing that number
print("Your favourite number is $n");
}
如果这不起作用,我想你应该试试这个答案
readLineSync()方法returns一个String?
。 ?
符号表示该变量可能为空。
另一方面,int.parse() 方法需要 String
,没有 ?
符号。这意味着如果 readLine 方法的结果为空,它不知道如何处理。
解决这个问题的最简单方法是给出一个默认值,以防结果为空:
int num1 = int.parse(stdin.readLineSync() ?? '0');
如果左侧为空,则 ??
运算符使表达式向右侧求值。所以给它一个默认值,它就不必为可空类型而烦恼。
您还可以使用其他运算符。您可以在 Dart documentation about it.
中阅读更多相关信息
我实际上不知道如何从输入控制台获取整数输入。然后经过一些研究我尝试了这个。
我的代码:
import 'dart:io';
void main() {
stdout.write("Enter a number: ");
int num1 = int.parse(stdin.readLineSync());
print(num1);
}
- 但是不起作用,显示错误信息,
ERROR: The argument type 'String?' can't be assigned to the parameter type 'String' because 'String?' is nullable and 'String' isn't.
- 然后终于知道dart2.12+版本dart引入了null safety。在空安全环境中正确执行此操作的任何建议。
试试这个
import 'dart:io';
void main()
{
// Asking for favourite number
print("Enter your favourite number:");
// Scanning number
int n = int.parse(stdin.readLineSync());
// Printing that number
print("Your favourite number is $n");
}
如果这不起作用,我想你应该试试这个答案
readLineSync()方法returns一个String?
。 ?
符号表示该变量可能为空。
另一方面,int.parse() 方法需要 String
,没有 ?
符号。这意味着如果 readLine 方法的结果为空,它不知道如何处理。
解决这个问题的最简单方法是给出一个默认值,以防结果为空:
int num1 = int.parse(stdin.readLineSync() ?? '0');
如果左侧为空,则 ??
运算符使表达式向右侧求值。所以给它一个默认值,它就不必为可空类型而烦恼。
您还可以使用其他运算符。您可以在 Dart documentation about it.
中阅读更多相关信息