有没有办法避免在Scala中转换数字类型?我应该使用Numeric,Integral吗?

1 types casting scala

我想不介意数字的类型.所有数字都可以被视为Double,但我想知道更好的scalaish方式使用数字作为数字.

这只是一个例子,假设我有以下内容:

val n = 5
val l = List(1,2,3,4,5) grouped (n / 2d).ceil.toInt
Run Code Online (Sandbox Code Playgroud)

有没有办法(完全):

val l = List(1,2,3,4,5) grouped (n / 2).ceil
Run Code Online (Sandbox Code Playgroud)

由于"分组"参数的类型不匹配而没有编译错误?

编辑

n / 2grouped (n / 2).ceil部分可以是,在另一示例中,函数的非整数结果f:

grouped f.ceil
Run Code Online (Sandbox Code Playgroud)

它仍然需要类型转换,或者在所有情况下都有一个技巧或设计模式来避免它?

Dan*_*ral 6

val l = List(1,2,3,4,5) grouped((n + 1) / 2)
Run Code Online (Sandbox Code Playgroud)