Как записать 'если', не используя 'затем' или 'конец' в Ruby

Вы можете создать пустой список, например, mylist и добавить в список. В вашем коде словарь Hours, но вы использовали часы для цикла.

mylist = []
for hour in Hours:
    mylist.append(hour.get("saat"))  # From dicionary
print(mylist)
8
задан Mohsen Nosratinia 8 May 2015 в 13:30
поделиться

3 ответа

"if x then y end"синтаксис предназначен для многострочных условных выражений в то время как"y if x"форма предназначена для кратких однострочных условных операторов. then необходимо в первом случае, чтобы сказать Ruby, что условие по (так как Ruby не требует parens как C), и end необходимо, чтобы сказать Ruby что целое if блок по (так как это могут быть несколько строк).

Можно заменить then с точкой с запятой, потому что конец строки также сигнализирует о конце условия. Вы не можете избавиться от end с мультилинией if. Или используйте вторую форму или тернарный оператор, если Вы хотите краткую остроту.

Например, предположить

x = true

следующее оценит верный, и возвратит y

x ? y :
=> y

аналогично, это оценит ложь и ничего не возвратит

!x ? y :
=> 

добавьте термин после ':' для еще случая

!x ? y : z
=> z
19
ответ дан 5 December 2019 в 07:13
поделиться

Вещь состоит в том, что обоими путями на самом деле является естественный способ думать:

если это верно, затем делают что-то

сделайте что-то, если это верно

Видеть? Ruby пытается быть рядом с английским синтаксисом этот путь. Конец просто необходим для окончания блока, в то время как во второй версии, с блоком уже соглашаются если.

Для фактического ответа на вопрос я думаю, что нет никакого шанса получить тогдашний и удаленный конец. Помнить Паскаля / Delphi? Вы имеете затем там также. Это типично только для языков C-стиля, чтобы не иметь его.

4
ответ дан 5 December 2019 в 07:13
поделиться

Что относительно того, чтобы использовать двоеточие вместо затем как это? http://www.java2s.com/Code/Ruby/Statement/layoutanifstatementisbyreplacingthethenwithacolon.htm

Существуют различные способы, которыми Вы могли сорвать, если бы Вы хотели сделать так.

Условный оператор является просто частью синтаксиса Ruby для создания этого большим количеством английского языка как.

0
ответ дан 5 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: