我有一個大問題,我有幾天試圖解決它,我希望有人能幫助我。問題如下: 我有一個列表,可以有n個元素,而是取決於元件的數量,我應該以不同的方式應用功能,例如我有以下代碼:斯卡拉遞歸列表操作
if (list.size() == 1){
p = list.get(0)
select = new Select(schema,p)
println(select)
} else { //If list have 2 elements
p = list.get(0)
p1 = list.get(1)
select = new Select(schema,And(p,p1))
println(select)
} else { //If list have 3 elements
p = list.get(0)
p1 = list.get(1)
p2 = list.get(2)
select = new Select(schema,new And(And(p,p1),p2))
println(select)
} else { //If list have 4 elements
p = list.get(0)
p1 = list.get(1)
p2 = list.get(2)
p3 = list.get(3)
select = new Select(schema,new And(And(p,p1),And(p2,p3))
println(select)
} else { //If list have 5 elements.......... and so on
哪有避免這種條件限制,並使其發揮作用。我試着用for循環,但是我不能生成新的變量,並且我也不知道如何給And函數賦予控制權....如果你需要mor信息請讓我知道
爲了添加更多的信息,AND功能是嵌套循環連接是使用關係數據庫:
sealed abstract class Pat //patterns
case class And(p1: Pat, p2: Pat) extends Pat
這有正在使用後,我得到上述條件語句的結果的另一功能。這個想法也是,我可以在列表中有n個元素,而不是一個固定數字,因此我認爲匹配不是一個選項
我會開始使用else而不是其他 –
或者'match'語句怎麼樣? – Simon
應該處理任何大小的列表嗎?能有多於一層的嵌套布爾表達式嗎?也許你可以提供一個示例輸入和一個示例輸出 – Simon