在将`splitAt`应用于`List`之后,是否有任何简洁的方法将类型从`Int`转换为`Double`?

时间:2017-12-23 02:33:48

标签: scala

我的输入是这样的:

Makefile

我希望得到的结果是这样的:

1 1 1 1 1 44 33

我知道我可以使用val listA = List(1, 1, 1, 1, 1) val listB = List(44.0, 33.0) 拆分列表,但我需要将ListB的值作为splitAt的类型,因为我将在Double运算符中使用它们。

到目前为止,我的代码就像这样,而且很难看。

/

有没有更好的方法来存档我的愿望?

1 个答案:

答案 0 :(得分:1)

您可以map listB包含Double s:

val listBDouble = listB.map(_.toDouble)

在此之后,您可以在表达式中使用它:

val result = listA.sum * (listBDouble(0) / (listBDouble(0) + listBDouble(1)))
顺便说一句,如果你因为分割而需要Double,那么这可能是首选:

 val result = listA.sum * ((listB(0): Double) / (listB(0) + listB(1)))

通过这种方式,您可以将(: Double)提名者归为Double,其余的将按预期工作。