diff options
| author | Adam <adam@adambard.com> | 2015-10-19 14:28:03 +0800 | 
|---|---|---|
| committer | Adam <adam@adambard.com> | 2015-10-19 14:28:03 +0800 | 
| commit | e6573af645792cb434a16440f60cce8935fea95c (patch) | |
| tree | a3ac540a41f977dcbda046c8faa332cd8864f2b3 /ruby.html.markdown | |
| parent | 6af01029e450fd2f82f0d056806ccb63a6e48ec9 (diff) | |
| parent | ba5f3ebc112b52797a9a21fdbba1846885feac2c (diff) | |
Merge branch 'master' of github.com:adambard/learnxinyminutes-docs
Diffstat (limited to 'ruby.html.markdown')
| -rw-r--r-- | ruby.html.markdown | 58 | 
1 files changed, 52 insertions, 6 deletions
| diff --git a/ruby.html.markdown b/ruby.html.markdown index 792c9c95..998b4bf7 100644 --- a/ruby.html.markdown +++ b/ruby.html.markdown @@ -12,7 +12,8 @@ contributors:    - ["Dzianis Dashkevich", "https://github.com/dskecse"]    - ["Levi Bostian", "https://github.com/levibostian"]    - ["Rahil Momin", "https://github.com/iamrahil"] - +  - ["Gabriel Halley", "https://github.com/ghalley"] +  - ["Persa Zula", "http://persazula.com"]  ---  ```ruby @@ -39,6 +40,8 @@ You shouldn't either  10 * 2 #=> 20  35 / 5 #=> 7  2**5 #=> 32 +5 % 3 #=> 2 +5 ^ 6 #=> 3  # Arithmetic is just syntactic sugar  # for calling a method on an object @@ -79,10 +82,14 @@ true && false #=> false  true || false #=> true  !true #=> false -# Alternate spellings of logical operators -true and false #=> false -true or false #=> true -not true #=> false +# There are alternate versions of the logical operators with much lower +# precedence. These are meant to be used as flow-control constructs to chain +# statements together until one of them returns true or false. + +# `do_something_else` only called if `do_something` succeeds. +do_something() and do_something_else() +# `log_error` only called if `do_something` fails. +do_something() or log_error()  # Strings are objects @@ -102,8 +109,20 @@ placeholder = 'use string interpolation'  'hello ' + 3 #=> TypeError: can't convert Fixnum into String  'hello ' + 3.to_s #=> "hello 3" -# print to the output +# Combine strings and operators +'hello ' * 3 #=> "hello hello hello " + +# Append to string +'hello' << ' world' #=> "hello world" + +# print to the output with a newline at the end  puts "I'm printing!" +#=> I'm printing! +#=> nil + +# print to the output without a newline +print "I'm printing!" +#=> I'm printing! => nill  # Variables  x = 25 #=> 25 @@ -150,6 +169,7 @@ array = [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5]  # Arrays can be indexed  # From the front  array[0] #=> 1 +array.first #=> 1  array[12] #=> nil  # Like arithmetic, [var] access @@ -160,15 +180,22 @@ array.[] 12 #=> nil  # From the end  array[-1] #=> 5 +array.last #=> 5  # With a start index and length  array[2, 3] #=> [3, 4, 5] +# Reverse an Array +a=[1,2,3] +a.reverse! #=> [3,2,1] +  # Or with a range  array[1..3] #=> [2, 3, 4]  # Add to an array like this  array << 6 #=> [1, 2, 3, 4, 5, 6] +# Or like this +array.push(6) #=> [1, 2, 3, 4, 5, 6]  # Check if an item exists in an array  array.include?(1) #=> true @@ -248,6 +275,12 @@ 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 +# variable +array.each_with_index do |element, index| +  puts "#{element} is number #{index} in the array" +end +  counter = 1  while counter <= 5 do    puts "iteration #{counter}" @@ -259,6 +292,19 @@ end  #=> iteration 4  #=> iteration 5 +# There are a bunch of other helpful looping functions in Ruby, +# for example "map", "reduce", "inject", the list goes on. Map, +# for instance, takes the array it's looping over, does something +# to it as defined in your block, and returns an entirely new array. +array = [1,2,3,4,5] +doubled = array.map do |element| +  element * 2 +end +puts doubled +#=> [2,4,6,8,10] +puts array +#=> [1,2,3,4,5] +  grade = 'B'  case grade | 
