# Arrays can be done anonymously a = [1,2,3,4] b = ["one",2,"3",4] puts a b.each { | it | puts it } # or not. They size dynamically. a = Array.new a[0] = "this" a[1] = "is" a[2] = "my" a[3] = "message" puts a # incidentally, yet another alternative to anonymous arrays for the above is a = %w{ this is my message } puts a # Hashes are similar. h = { "first" => "Ross", "last" => "Bamford", "job" => "jobless drifter" } puts h['first'] + " " + h['last'] + " is a " + h['job'] # By default a Hash returns nil for a non-existent key h = Hash.new if h['dunno'] == nil puts "It's nil!" else puts "It's not! It's #{h['dunno']}" end # Sometimes it's more convenient to have it return something else, like zero # if using the hash to count occurences, or whatever. h = Hash.new("dunno mate") h['ross'] = "Bamford" h['rosie'] = "Randall" puts h['ross'] # Bamford puts h['rosie'] # Randall puts h['john'] # dunno mate