summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIlya Vorontsov <vorontsov.i.e@gmail.com>2019-09-05 11:06:51 +0300
committerIlya Vorontsov <vorontsov.i.e@gmail.com>2019-09-05 11:06:51 +0300
commit4a14d54eb520f9776710102bfec740467b549745 (patch)
tree0b2bf822e0625d4ea483489fdb2b4d55cd81341f
parentffb9c5f909d860a98d3d86ed49bc169413e0dd65 (diff)
[ruby/ru] [ruby/en] added notes about postfix-if and about
-rw-r--r--ru-ru/ruby-ru.html.markdown10
-rw-r--r--ruby.html.markdown8
2 files changed, 18 insertions, 0 deletions
diff --git a/ru-ru/ruby-ru.html.markdown b/ru-ru/ruby-ru.html.markdown
index e69c6d94..b1fd04e1 100644
--- a/ru-ru/ruby-ru.html.markdown
+++ b/ru-ru/ruby-ru.html.markdown
@@ -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
diff --git a/ruby.html.markdown b/ruby.html.markdown
index 2595d1d5..d77672ab 100644
--- a/ruby.html.markdown
+++ b/ruby.html.markdown
@@ -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`.