view 1-Ruby/arrays.rb @ 16:8d46064c9afc

Be a nice Ruby user and follow block convention for do/end vs {}
author IBBoard <dev@ibboard.co.uk>
date Tue, 03 Jan 2017 20:38:45 +0000
parents 9aa1eba404f0
children
line wrap: on
line source

#! /usr/bin/env ruby

animals = ['lions', 'tigers', 'bears']

# Default "puts" for array is one element per line
puts animals

puts "Accessing undefined indexes gives nil" if animals[10] == nil
puts "Negative indexes also work (like Python): -1 =  #{animals[-1]}"
puts "And you get slices/ranges: 1..2 = #{animals[1..2]}"
puts "1..2 is even an object: #{(1..2).class}"
puts "and indexers are methods: [1].methods.include?(:[]) = #{[1].methods.include?(:[])}"
# Note: we're using v1.9+ syntax - previously it was "….include?('[]')"
puts "as is assignment to an array! [1].methods.include?(:[]=) = #{[1].methods.include?(:[]=)}"
puts ""
puts "All funky non-ASCII methods for arrays:"
[].methods.each do |method| 
	if method !~ /[a-z]/
		puts method
	end
end

puts ""
puts "Arrays are also stacks with push() and pop() methods!"