Я начал изучать scala несколько дней назад и при изучении этого, я сравниваю его с другими языками функционального программирования как (Haskell, Erlang), с которым у меня было некоторое знакомство. Scala имеет защитные последовательности в наличии?
Я прошел сопоставление с образцом в Scala, но являюсь там любым понятием, эквивалентным защите с otherwise
и все?
Да, используется ключевое слово if
. Из раздела Case Classes A Tour of Scala, внизу:
def isIdentityFun(term: Term): Boolean = term match {
case Fun(x, Var(y)) if x == y => true
case _ => false
}
(Это не упоминается на странице Pattern Matching , возможно, потому, что Tour такой быстрый обзор.)
В Haskell, иначе
на самом деле просто переменная, привязанная к True
. Так что это не добавляет силы концепции сопоставления с образцом. Вы можете получить его, просто повторив свой первоначальный шаблон без защиты:
// if this is your guarded match
case Fun(x, Var(y)) if x == y => true
// and this is your 'otherwise' match
case Fun(x, Var(y)) if true => false
// you could just write this:
case Fun(x, Var(y)) => false
Azure обрабатывает балансировку нагрузки для табличного места хранения и SQL Azure, распределяя трафик между настроенными экземплярами.
Для таких вещей, как состояние сеанса с традиционным приложением asp.net, данные сеанса будут храниться в таблице места хранения, которая затем будет доступна для всех экземпляров webrole. Об этом говорится здесь .
Windows Azure обеспечивает балансировку нагрузки для каждой открытой конечной точки, позволяя масштабировать приложение до любого количества экземпляров. Необходимо убедиться, что приложение не имеет состояния (или хранит состояние в общей области в разных экземплярах, таких как blobs или таблицы). Единственными конечными точками, не сбалансированными по нагрузке, являются внутренние конечные точки. Таким образом, если вы выполняете какой-то тип межролевой связи, например, от веб-роли до одного из нескольких экземпляров рабочих ролей, размещающих службу wcf на внутренней конечной точке, вам придется обрабатывать балансировку нагрузки между этими экземплярами.
-121--2147954- Да, используется ключевое слово , если
. Из раздела Case Classes Экскурсии по Скале, расположенного внизу:
def isIdentityFun(term: Term): Boolean = term match {
case Fun(x, Var(y)) if x == y => true
case _ => false
}
(Это не упоминается на странице Образцов Matching , возможно, потому, что Экскурсия - это такой быстрый обзор.)
В Haskell, в противном случае
является просто переменной, связанной с True
. Таким образом, это не добавляет никакой силы к концепции сопоставления образцов. Вы можете получить его, просто повторив свой первоначальный образец без охраны:
// if this is your guarded match
case Fun(x, Var(y)) if x == y => true
// and this is your 'otherwise' match
case Fun(x, Var(y)) if true => false
// you could just write this:
case Fun(x, Var(y)) => false
-121--1129259- Да, есть стражи. Они используются так:
def boundedInt(min:Int, max: Int): Int => Int = {
case n if n>max => max
case n if n<min => min
case n => n
}
Обратите внимание, что вместо в противном случае
-клаузы вы просто указываете образец без охраны.
Простой ответ - нет. Это не совсем то, что вы ищете (точное соответствие синтаксису Haskell). Вы могли бы использовать оператор «match» в Scala с защитой и указать подстановочный знак, например:
num match {
case 0 => "Zero"
case n if n > -1 =>"Positive number"
case _ => "Negative number"
}