Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在将'splitAt'应用于'List'之后,是否有任何简洁的方法将类型从'Int'转换为'Double'?_Scala - Fatal编程技术网

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)))

你这样认为:提名人加倍,其他人也会像预期的那样工作。

我一直在寻找不使用额外一行的方法,顺便说一句,你的答案就是我想要的。谢谢