Миграция Laravel меняет значение столбца по умолчанию

Ответ SerJ de SuDDeN абсолютно прав, но некоторые подробности о том, почему код, о котором вы говорили, работает так, как он работает.

val (a, b) = (1, 2)

называется экстрактором шаблона-match-expression. Значение с правой стороны сопоставляется с экстрактором левой стороны. Это можно сделать повсюду в Scala и иметь разные лица. Например, совпадение шаблона в List может выглядеть примерно так:

scala> val head :: tail = 1 :: 2 :: 3 :: Nil
head: Int = 1
tail: List[Int] = List(2, 3)

С правой стороны :: -символ является методом класса List, который добавляет к нему элементы. С левой стороны :: -символ является экстрактором класса ::, подкласса List.

Некоторые другие места могут быть для-понимания

scala> for ((a, b) <- (1 to 3) zip (4 to 6)) println(a+b)
5
7
9

или эквивалентная нотация с более высокими порядковыми методами

scala> (1 to 3) zip (4 to 6) foreach { case (a, b) => println(a+b) }
5
7
9
35
задан Brendan Van Der Merwe 3 May 2016 в 11:55
поделиться