Mercurial > repos > other > SevenLanguagesInSevenWeeks
view 1-Ruby/arrays.rb @ 103:98be775c533c default tip
An odd "non-determinism" example from StackOverflow
It is clever, but doesn't make much sense as to how it gets its results
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 14 Jul 2019 13:44:13 +0100 |
parents | 8d46064c9afc |
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!"