簡體   English   中英

Scala:創建帶有變量的 case class 的多個序列

[英]Scala : Create multiple sequence of case class with variables in it

我正在嘗試動態生成一系列案例 class 但我一度被阻止。 我想在這個 function 中使用變量。

這是我所做的示例(按預期工作):

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))
}}

有沒有一種簡單的方法可以做到這一點,或者我需要簡單地重構我的代碼並使用標准循環生成我需要的東西?

提前致謝

您的代碼實際上非常接近,您只需將()替換為{}即可將參數轉換為表達式:

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

  Example(first_name, last_name)
}

您也可以只調用構造函數中的函數:

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

請注意, Seq是一個通用接口,因此您可能應該使用顯式類型(例如ListVector )來確保獲得所需的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM