Merge pull request #3621 from VorontsovIE/ruby-postfix-if

[ruby/ru] [ruby/en] notes about postfix-if and `unless`
This commit is contained in:
Divay Prakash 2019-09-17 19:27:44 +05:30 committed by GitHub
commit c3cc7cc7b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View File

@ -231,6 +231,7 @@ new_hash.value?(3) #=> true
# Управление ходом выполнения (Управляющие структуры)
# Условия
if true
'Если истина'
elsif false
@ -239,6 +240,15 @@ else
'Во всех других случаях (тоже опционально)'
end
# Если условие контролирует выполнение не блока кода, а единственного выражения,
# можно использовать постфиксную запись условного оператора
warnings = ['Отсутствует отчество', 'Слишком короткий адрес']
puts("Обратите внимание:\n" + warnings.join("\n")) if !warnings.empty?
# Иногда условие лучше звучит с `unless`, чем с `if`
puts("Обратите внимание:\n" + warnings.join("\n")) unless warnings.empty?
# Циклы
for counter in 1..5
puts "итерация #{counter}"
end

View File

@ -247,6 +247,14 @@ else
'else, also optional'
end
# If a condition controls invokation of a single statement rather than a block of code
# you can use postfix-if notation
warnings = ['Patronimic is missing', 'Address too short']
puts("Some warnings occurred:\n" + warnings.join("\n")) if !warnings.empty?
# Rephrase condition if `unless` sounds better than `if`
puts("Some warnings occurred:\n" + warnings.join("\n")) unless warnings.empty?
# Loops
# In Ruby, traditional `for` loops aren't very common. Instead, these
# basic loops are implemented using enumerable, which hinges on `each`.