Когда вы делаете что-то вроде этого:
case class TestData(name : String , idNumber : Int)
val createRandomData : immutable.IndexedSeq[Int => TestData]= (0 to 2).map{
_ => TestData("something",_)
}
первое подчеркивание означает, что вы игнорируете значение параметра, затем вы используете другое подчеркивание в теле функции, переданной в map, поэтому вы создаете лямбда-функцию, которая заканчивается типом возврата.
В первом сценарии вы хотели:
case class TestData(name : String , idNumber : Int)
val createRandomData = (0 to 2).map{
TestData("something",_)
}
Который имеет TestData в качестве типа возврата.