Scala:创建多个包含变量的case类序列



我试图动态地生成一个case类序列,但我在一点上被阻止了。我想在这个函数中使用变量。

下面是我所做的一个例子(它像预期的那样工作):

case class Example(first_name: String, last_name: String)
Object Example{
def createRecords(number: Int) : Seq[Example]{
Seq.fill(number)(Example("Bob", "Marley"))
}}

我现在要做的是将first_name和last_name作为生成过程中的变量,看起来像这样:

Object Example{
def createRecords(number: Int) : Seq[Example]{
Seq.fill(number)(
val first_name = generateRandomFirstName()
val last_name = generateRandomLastName() 
Example(first_name, last_name))
}}

是否有一种简单的方法可以做到这一点,或者我需要简单地重构我的代码并生成我需要的标准循环?

Thanks in advance

您的代码实际上非常接近,您只需要将()替换为{}以将参数转换为表达式:

Seq.fill(number){
val first_name = generateRandomFirstName()
val last_name = generateRandomLastName()
Example(first_name, last_name)
}

你也可以直接调用构造函数中的函数:

Seq.fill(number)(
Example(generateRandomFirstName(), generateRandomLastName())
)

注意,Seq是一个通用接口,所以你可能应该使用显式类型,如ListVector,以确保你得到你想要的类型。

相关内容

  • 没有找到相关文章

最新更新