LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

Они, конечно, придумали максимально нечитаемый синтаксис. В гипотетической Java это выглядело бы как-то так:

currentBalance +=
  switch (transaction) {
    case TransactionType.Deposit(amount) -> amount;
    case TransactionType.Withdrawal(amount) => -amount;
    default -> 0.0;
  };

Тут по крайней мере понятно, что именно сопоставляется шаблонам. А в исходном примере я думал, что сопоставляется результат выражения (currentBalance += transaction).

Исправление vbr, :

Они, конечно, придумали максимально нечитаемый синтаксис. В гипотетической Java это выглядело бы как-то так:

currentBalance +=
  switch (transaction) {
    case TransactionType.Deposit(amount) -> amount;
    case TransactionType.Withdrawal(amount) => -amount;
    default -> 0.0;
  };

Тут по крайней мере понятно, что именно паттерн-матчится.

Исходная версия vbr, :

Они, конечно, придумали максимально нечитаемый синтаксис.