我創建了一個函數來從Pascal三角形中檢索給定值,並且我使用了if
語句。現在我想重構函數來使用模式匹配。與元組匹配的Scala模式:匹配元組中的相等值
我if
基於函數如下:
def valueAt(row: Int, column: Int): Int = {
// ...
else if (row == column) 1 // last column
//
}
我的第二個版本的功能,使用模式匹配具有以下特徵:
def valueAt2(row: Int, column: Int): Int = (row, column) match {
// ...
}
是否有可能定義一個case
何時row
和column
具有相同的值?
我在case
使用相同的變量名試過了,是這樣的:
case (x, x) => 1 // last column
的,我也嘗試使用row
的值列,就像這樣:
case (_, row) => 1 // last column
但他們不工作。在第一種情況下,我有一個編譯錯誤,第二種情況下,IDE說我正在從match
映射變量row
。
這可能嗎?
謝謝。