scala - 在 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 中制作不可变列表的“正确”方法是什么?
解决方案
如果你知道你想要什么集合类型,你可以使用该tabulate
类型的方法:
List.tabulate(10)(makePerson)
在这种情况下makePerson
是一个函数,它接受一个Int
并返回那个的Person
对象Int
。
如果你不关心集合类型,你可以像这样调用map
范围1 to 10
:
(1 to 10).map(makePerson)
如果不需要使用Int
参数,可以这样做:
List.tabulate(10)(_ => makeRandomPerson())
推荐阅读
- java - Java import org.mockito 报错包不存在
- c++ - 如何编译使用循环引用的代码?
- swift - 如何从 WatchOS 的 SwiftUI 列表中删除分隔符?
- django - 如何复制 HTTP 标头?
- angular - Ngx Shell 组件不是 ngModule 的一部分
- c - OpenCL 内核定义错误 clBuildProgram(CL_BUILD_PROGRAM_FAILURE)?
- java - 从用户输入中打印几个回文
- swift - 如何使用单独的视图控制器从弹出视图更新 UIlabel
- ajax - 我想使用 PUT 方法来更新我的数据库中的变量。每次单击按钮时,我都需要更新该变量
- google-analytics - Samesite 属性调整 - AdWords 和分析 Cookie