summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorven <vendethiel@hotmail.fr>2016-01-26 09:14:52 +0100
committerven <vendethiel@hotmail.fr>2016-01-26 09:14:52 +0100
commit22a747d45f6338ccb009e599a81ecfaf76ba53fe (patch)
tree9eaf7d167aecb78e85386506c4713961025d1a26
parentb673b64b50ee8b9ba16348444b8d43adb70c3913 (diff)
parent236cc1c14c71e561d9ab715079f6974a86fad271 (diff)
Merge pull request #2115 from ryanplant-au/master
[Ruby] Naming conventions and destructuring assignment
-rw-r--r--ruby.html.markdown24
1 files changed, 23 insertions, 1 deletions
diff --git a/ruby.html.markdown b/ruby.html.markdown
index 3eed2d3c..adf5ce81 100644
--- a/ruby.html.markdown
+++ b/ruby.html.markdown
@@ -285,7 +285,7 @@ hash.each do |key, value|
puts "#{key} is #{value}"
end
-# If you still need and index you can use "each_with_index" and define an index
+# If you still need an index you can use "each_with_index" and define an index
# variable
array.each_with_index do |element, index|
puts "#{element} is number #{index} in the array"
@@ -411,6 +411,28 @@ def guests(*array)
array.each { |guest| puts guest }
end
+# If a method returns an array, you can use destructuring assignment
+def foods
+ ['pancake', 'sandwich', 'quesadilla']
+end
+breakfast, lunch, dinner = foods
+breakfast #=> 'pancake'
+dinner #=> 'quesadilla'
+
+# By convention, all methods that return booleans end with a question mark
+5.even? # false
+5.odd? # true
+
+# And if a method ends with an exclamation mark, it does something destructive
+# like mutate the receiver. Many methods have a ! version to make a change, and
+# a non-! version to just return a new changed version
+company_name = "Dunder Mifflin"
+company_name.upcase #=> "DUNDER MIFFLIN"
+company_name #=> "Dunder Mifflin"
+company_name.upcase! # we're mutating company_name this time!
+company_name #=> "DUNDER MIFFLIN"
+
+
# Define a class with the class keyword
class Human