首页 > 解决方案 > 在 Scala 中制作列表的正确方法是什么?

问题描述

具有面向对象编程的背景,我无法理解如何在 Scala 中制作不可变列表。

例子; 我想列出 10 个随机的人:

object MyApplication extends App {

  val numberOfPersons = 10 : Int
  val listOfPersons = makeListOfPersons(numberOfPersons) : List[Person]

  def makeListOfPersons( numberOfPersons : Int ) : List[Person] = {
    // TODO: return a immutable list of 10 persons
  }

}

class Person {
  /**
    Generic content, 
    like age and name.
  * */
}

在 Scala 中制作不可变列表的“正确”方法是什么?

标签: scalafunctiondictionaryrecursion

解决方案


如果你知道你想要什么集合类型,你可以使用该tabulate类型的方法:

List.tabulate(10)(makePerson)

在这种情况下makePerson是一个函数,它接受一个Int并返回那个的Person对象Int

如果你不关心集合类型,你可以像这样调用map范围1 to 10

(1 to 10).map(makePerson)

如果不需要使用Int参数,可以这样做:

List.tabulate(10)(_ => makeRandomPerson())

推荐阅读