#scala
#scala
Вопрос:
Если я хочу сделать что-то вроде:
if (!(condition)) { }
Какое эквивалентное выражение в Scala?
Похоже ли это?
if (not(condition)) { }
Например, в C я могу сделать:
bool condition = (x > 0)
if(!condition){ printf("x is not larger than zero") }
РЕДАКТИРОВАТЬ: я понял, что Scala определенно может сделать то же самое, что я просил. Пожалуйста, продолжайте и попробуйте.
Комментарии:
1. Я прошу прощения за то, что не был ясен. Я спрашиваю
if(!condition){}
. Условие может быть любым. Спасибо!2. @JeffHu Что такое «что угодно»? Можете ли вы привести пример?
3.@YuvalItzchakov Например, в C я могу сделать:
bool condition = (x > 0)
if(!condition){ printf("x is not larger than zero") }
4. Вы можете сделать то же самое в Scala.
Ответ №1:
В Scala вы можете проверить if
, равны ли два операнда ( ==
) или нет ( !=
), и он возвращает true, если условие выполнено, false, если нет ( else
) .
if(x!=0) {
// if x is not equal to 0
} else {
// if x is equal to 0
}
Само по себе !
называется логическим оператором NOT .
Используйте его, чтобы изменить логическое состояние его операнда.
Если условие истинно, то логический оператор NOT сделает его ложным.
if(!(condition)) {
// condition not met
} else {
// condition met
}
Где !(condition)
может быть
- любое (логическое) выражение
- например:
x==0
- ->
!(x==0)
- ->
- например:
- любое (подобное логическому) значение
- например:
someStr.isEmpty
- ->
!someStr.isEmpty
- нет необходимости в избыточных круглых скобках
- ->
- например:
Комментарии:
1. Спасибо! Как насчет того, что я только хочу выполнить (!условие) ?
2. @JeffHu Это тоже работает, когда вашим условием является, например, вызов логической функции.
Ответ №2:
if (! condition) { doSomething() }
condition
в приведенном выше if
выражении может быть любое выражение, которое вычисляет Boolean
например
val condition = 5 % 2 == 0
if (! condition) { println("5 is odd") }
!=
эквивалентно negation of ==
if (x != 0) <expression> else <another expression>
Scala REPL
scala> if (true) 1
res2: AnyVal = 1
scala> if (true) 1
res3: AnyVal = 1
scala> if (true) 1 else 2
res4: Int = 1