Если компилятор знает, какой тип коллекции ожидать (и он делает это здесь, как указано в сообщении об ошибке), вы можете использовать scala.collection.breakOut
, чтобы разрешить вывод типа на основе ожидаемого типа выражения, а не типасама коллекция.
def generateRandomGenomes(n: Int): collection.mutable.IndexedSeq[Double] =
(0 until n).map(_ => util.Random.nextDouble())(collection.breakOut)
(я немного подправил ваш пример, чтобы придерживаться известных типов.)
Большинство (всех?) типов коллекций имеют несколько удобных фабричных методов на своем компаньоне.объекты.Таким образом, другой способ сделать то же самое - использовать scala.collection.mutable.IndexedSeq.fill
:
def generateRandomGenomes(n: Int): collection.mutable.IndexedSeq[Double] =
collection.mutable.IndexedSeq.fill(n)(util.Random.nextDouble())