Я только что видел этот блок кода в статье Wikipedia об условных операторах:
Vehicle new_vehicle = arg == 'B' ? bus :
arg == 'A' ? airplane :
arg == 'T' ? train :
arg == 'C' ? car :
arg == 'H' ? horse :
feet;
Я немного изменил код, но идея та же. Считаете ли вы это использование условного оператора приемлемым? Это намного более кратко, чем конструкция if
- else
, и использование переключателя определенно откроет целый новый набор возможностей для ошибок (кто-нибудь провалится?). Кроме того, if
- else
s и switch
не могут использоваться в качестве R-значений, поэтому вам придется сначала создать переменную, инициализировать ее, а затем назначить при необходимости.
Мне, например, очень нравится это, но мне интересно, что думают другие.
Но форматирование необходимо.
РЕДАКТИРОВАТЬ: Мне все еще нравится это. Но я понимаю тех, кто говорит, что «для этого было сделано заявление». ОК, может быть и так. Но что, если условия являются вызовами функций, которые возвращают bool
? Или миллион других вещей, которые вы не можете включить.
Вы действительно любите смену, пытаясь убедить меня, что огромная цепочка if
- else
лучше? Да, программисты, которые не знают, как использовать условный оператор, не поймут этого. Они должны научиться им пользоваться. Это не тайно.