Вы можете использовать .padTo
,
scala> val l = List(1, 2, 3)
l: List[Int] = List(1, 2, 3)
scala> l.take(5).padTo(len = 5, elem = 0)
res5: List[Int] = List(1, 2, 3, 0, 0)
похожий вопрос: Scala - дополняет массив до определенного размера
Вы также можете написать метод расширения takeOrElse
на List[Int]
,
scala> implicit class ListOps(list: List[Int]) {
| def takeOrElse(length: Int, elem: Int): List[Int] = {
| list.take(length).padTo(len = length, elem = elem)
| }
| }
defined class ListOps
scala> val newList = l.takeOrElse(5, 0)
newList: List[Int] = List(1, 2, 3, 0, 0)
Также см .: Методы расширения Scala?