Я создал функцию для получения заданного значения из Треугольника Паскаля, и я использовал операторы 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 говорит, что я затеняю переменную row
из match
.
Это возможно?
Спасибо.