【问题标题】:Dart question about concatenating objects and strings关于连接对象和字符串的 Dart 问题
【发布时间】:2021-09-18 04:04:43
【问题描述】:

如何将字符串“km/h”连接到 print(tesla.speed); ?这样控制台将输出 200 公里/小时?我知道最简单的方法是将“int?speed”更改为“String?speed”,然后将 km/h 放入 topSpeed:“200km/h”。但我想知道是否有另一种方法可以在不改变 int 的情况下做到这一点?速度到字符串?速度。 ?

void main() {
  Car tesla = Car(carModel: "Model-S", topSpeed: 200);

  print (tesla.model);
  print (tesla.speed);
}


class Car{

  String? model;
  int? speed;

  Car({String? carModel, int? topSpeed}){
    model = carModel;
    speed = topSpeed;
  }
}

【问题讨论】:

  • '${tesla.speed} km/h'
  • Kishan Dhankecha 在答案部分回答它我会将您的答案标记为正确
  • 当然。我会不加解释地做到这一点

标签: dart


【解决方案1】:

为此,您必须在 String 中的变量名称前添加一个美元符号,如下所示。

String name = "John Doe";

print('Good Morning, $name');

在上面的例子中,我们使用直接变量作为字符串的输入。但是,在您的情况下,您使用了 Modal 类来存储数据。所以我们不能只像'$name' 那样进行字符串操作。这将打印Instance of 'Car'。对于这种情况,我们必须在需要添加字符串插值的对象周围添加花括号,如下所示。

Car tesla = Car(carModel: "Model-S", topSpeed: 200);

print ('${tesla.speed} km/h');

欲了解更多信息,请参阅:

source

【讨论】:

    【解决方案2】:

    我认为您的打印内容更改为:

    print('${speed} km/h')
    

    【讨论】:

      【解决方案3】:

      您可以在 Car 对象本身中添加一个单元作为单独的实体。

      void main() {
        Car tesla = Car(carModel: "Model-S", topSpeed: 200, speedUnit : "km/h");
      
        print(tesla.model);
        print('${tesla.speed} ${tesla.unit}');
      }
      
      
      class Car {
        String? model;
        int? speed;
        String? unit;
      
        Car({String? carModel, int? topSpeed, String? speedUnit}) {
          model = carModel;
          speed = topSpeed;
          unit = speedUnit;
      
        }
      }
      

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      相关资源
      最近更新 更多