Dart 如何在插值字符串中使用带算术的三元表达式?
我有一个名为distance的双变量,单位是KM,如果它小于1km,我希望它以米为单位显示,并将距离乘以1000,将其转换为米,到目前为止,这是我提出的有效方法,但有更干净的方法吗Dart 如何在插值字符串中使用带算术的三元表达式?,dart,Dart,我有一个名为distance的双变量,单位是KM,如果它小于1km,我希望它以米为单位显示,并将距离乘以1000,将其转换为米,到目前为止,这是我提出的有效方法,但有更干净的方法吗 '${distance < 1 ? distance * 1000 : distance} ${distance < 1 ? 'm' : 'km'}' “${distance
'${distance < 1 ? distance * 1000 : distance} ${distance < 1 ? 'm' : 'km'}'
“${distance<1?distance*1000:distance}${distance<1?m':'km'}”
我试图把计算转换成一个三元表达式,但没有成功
'${distance < 1 ? distance * 1000 'm' : distance 'km'}'
“${距离<1?距离*1000'米:距离'km'}”
如果您的唯一目标是将其缩短为单个三元表达式(在本例中为条件运算符),则必须使用距离的toString
方法,并将其与以下单位连接
“${distance<1?(distance*1000).toString()+'m':(distance.toString()+'km'}”
一个可能更好的解决方案是使用
(距离<1?”${distance*1000}m:“${distance}km”)
它不需要Irn建议的toString
。我建议指定“清洁剂”的含义。根据你上次的尝试,我假设你只想要一个三元表达式,就像我的答案一样成功,但这真的不清楚。说“cleaner”是主观的(例如,如果我想要更干净的代码,我根本不会使用三元表达式),这可能会导致这个基于观点的问题的结束。吹毛求疵:?
/:
运算符是条件运算符。Dart中的三元运算符比那一个多(三元运算符是一个接受三个操作数的运算符,就像二元运算符接受两个操作数一样)。例如,[]=
运算符也是三元运算符。另一个。可能更容易阅读,选项是:(距离<1?”${distance*1000}m:“${distance}km”)
@lrn您介意我偷了它并将其添加到我的答案中吗?一点也不介意。如果能给出更好的答案,所有使用都是公平的。:)