我想從字母表中計算所有大小為 3 的組合(存盤在vocabularyas 中Seq[Char])并將每個組合輸出為 a Seq[Char],同時將其存盤在一個序列中。
這是字母表的定義:
val alphabet:Seq[Char] = Seq('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
我寫了這段代碼。
def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = {
// vocabulary = alphabet
val keys:Seq[Seq[Char]] = (for {x<-vocabulary;y<-vocabulary;z<-vocabulary} yield(x y z).toSeq).toSeq
}
我收到一個type mismatch錯誤:
[error] found : Unit
[error] required: Seq[Seq[Char]]
我搜索了 Scala API 以連接 Char 型別元素,但沒有找到任何東西。
uj5u.com熱心網友回復:
你有兩個問題enumProduct3- 產量應該是 Seq(x, y, z)和方法應該回傳值:
def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = {
// vocabulary = alphabet
val keys: Seq[Seq[Char]] = for {x <- vocabulary; y <- vocabulary; z <- vocabulary}
yield Seq(x, y, z)
keys
}
要不就:
def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = for {
x <- vocabulary; y <- vocabulary; z <- vocabulary
} yield Seq(x, y, z)
uj5u.com熱心網友回復:
如果您想要像 Luis Miguel 這樣的 Seq[Char] 在您的問題中發表評論,您應該yield Seq(x, y, z)
如果要將字符連接成字串,可以使用插值器:
s"$x$y$z"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/483491.html
