У меня есть вопрос относительно операторов if с одним лайнером, поскольку я не нашел его упомянутого в руководстве. Можно ли использовать что-то вроде:
var playerMark = player == 1 ? "x" : "o"
Спасибо!
Лично я фанат. Я немного меньше фанат вложенных тройных лайнеров. Кстати, я думаю, это должен быть let
:)
Я предпочитаю помещать все тернарные операторы внутрь (...). Мне это кажется более читаемым:
let playerMark = ( player == 1 ? "x" : "o" ) // lets var be let
Неужели нет случаев, когда использовать это было бы плохо.
Я наткнулся на этот код в репо, в котором участвую, и обнаружил следующее:
hostNameLabel.text = host.name == nil || (host.name!.isEmpty) ? "DetailsDetails.NoName".localized : host.name
намного менее читабельно, чем это
if host.name == nil || host.name!.isEmpty {
"DetailsDetails.NoName".localized
} else {
host.name
}
Самый полезный комментарий
Я предпочитаю помещать все тернарные операторы внутрь (...). Мне это кажется более читаемым: