【问题标题】:Why can't we assign String to stdin? [duplicate]为什么我们不能将 String 分配给 stdin? [复制]
【发布时间】:2021-12-10 02:29:27
【问题描述】:

我是飞镖新手。我认为这是关于我无法将 String 分配给 stdin.readLineSync() 的新 dart 版本。有人可以告诉我替代方案吗?

这只是一个基本的计算器,我试图将两个数字相加。

import 'dart:io';
import 'dart:math';


void main() {
  print("Enter first number: ");
  String? num1 = stdin.readLineSync();
  print("Enter second number: ");
  String? num2 = stdin.readLineSync();

  print(num1 + num2);

  
}

【问题讨论】:

  • 您好,可以添加错误信息吗?
  • 链接的答案不是完全相同的问题,但非常相似,因为您的问题不在于int.parse,而是在String? 类型上使用+ 运算符。但是答案详细描述了您在使用可空类型时遇到的问题以及不同的解决方案。 :)

标签: dart


【解决方案1】:

这是您的替代方法:

In Dart programming language, you can take standard input from the user through the console via the use of .readLineSync() function.

import 'dart:io';

void main()
   {   
    print("Enter first number");
    int? n1 = int.parse(stdin.readLineSync()!);

    print("Enter second number");
    int? n2 = int.parse(stdin.readLineSync()!); 

    int sum = n1 + n2;
    print("Sum is $sum");
   }

这里清楚地解释了你的问题"The argument type 'String?' can't be assigned to the parameter type 'String'" when using stdin.readLineSync()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 2021-04-24
    • 2017-07-31
    • 2012-07-25
    • 1970-01-01
    • 2017-03-28
    • 2017-07-20
    • 2012-11-10
    相关资源
    最近更新 更多