Нужна помощь с пониманием данного примера C#
Увидел в видео такую часть кода
var randomTile = Random.Range(0,6) == 3 ? mountineTile : grassTile;
Можете объяснить данную конструкцию? Random.Range понимаю, а вот эту часть уже нет " = 3 ? mountineTile : grassTile;"
Для чего вопросительный знак, двоеточие. Заранее спасибо вам
Ответы (2 шт):
Условный оператор ?:, также называемый тернарным, вычисляет логическое выражение и в зависимости от полученного значения true или false возвращает результат одного из двух соответствующих выражений, как показано в следующем примере.
string GetWeatherDisplay(double tempInCelsius) => tempInCelsius < 20.0 ? "Cold." : "Perfect!";
Console.WriteLine(GetWeatherDisplay(15)); // output: Cold.
Console.WriteLine(GetWeatherDisplay(27)); // output: Perfect!
Как показано в предыдущем примере, синтаксис условного оператора выглядит следующим образом.
condition ? consequent : alternative
Выражение condition должно принимать значение true или false. Если condition принимает значение true, вычисляется выражение consequent, а результат становится результатом операции. Если condition принимает значение false, вычисляется выражение alternative, а результат становится результатом операции. Вычисляется только выражение consequent или alternative.
Условный оператор имеет правую ассоциативность, то есть выражение формы.
a ? b : c ? d : e
вычисляется как
a ? b : (c ? d : e)
Вы можете использовать следующий мнемонический прием, чтобы запомнить, как оценивается условный оператор:
is this condition true ? yes : no
В основном применяют для сокращения/упрощения кода. Данное выражение эквивалентно:
var randomTile;
if (Random.Range(0,6) == 3) // может всё таки равно, а не присвоение?
{
randomTile = mountineTile;
}
else
{
randomTile = grassTile;
}