Scala 在将'splitAt'应用于'List'之后,是否有任何简洁的方法将类型从'Int'转换为'Double'?
我的输入如下:Scala 在将'splitAt'应用于'List'之后,是否有任何简洁的方法将类型从'Int'转换为'Double'?,scala,Scala,我的输入如下: 1 1 1 1 1 44 33 val listA = List(1, 1, 1, 1, 1) val listB = List(44.0, 33.0) 我想得到的结果是: 1 1 1 1 1 44 33 val listA = List(1, 1, 1, 1, 1) val listB = List(44.0, 33.0) 我知道我可以使用splitAt拆分列表,但是我需要ListB的值是Double类型,因为我要在/operator中使用它们 到目前为止,我的代码是这
1 1 1 1 1 44 33
val listA = List(1, 1, 1, 1, 1)
val listB = List(44.0, 33.0)
我想得到的结果是:
1 1 1 1 1 44 33
val listA = List(1, 1, 1, 1, 1)
val listB = List(44.0, 33.0)
我知道我可以使用splitAt拆分列表,但是我需要ListB的值是Double类型,因为我要在/operator中使用它们
到目前为止,我的代码是这样的,很难看
val (listA, listB) = li.splitAt(5)
val result = listA.sum * (listB(0).toDouble / (listB(0).toDouble + listB(1).toDouble))
有没有更好的方法来存档我的愿望?您可以将列表B映射为包含双精度:
在此之后,可以在表达式中使用:
val result = listA.sum * (listBDouble(0) / (listBDouble(0) + listBDouble(1)))
顺便说一句,如果你仅仅因为除法而需要双打,可能这是首选:
val result = listA.sum * ((listB(0): Double) / (listB(0) + listB(1)))
你这样认为:提名人加倍,其他人也会像预期的那样工作。我一直在寻找不使用额外一行的方法,顺便说一句,你的答案就是我想要的。谢谢