Ruby/Array/Compare Array
Материал из Wiki.crossplatform.ru
compare arrays is with <=> (spaceship operator).
# it compares each object in the arrays. # The two arrays are considered equal if they are the same length and if the value element is equal to the corresponding element in the other array. # When a comparison is made, it determines whether the values of the compared elements are greater than, lesser than, or equal to each other. # Rather than true or false, the comparison returns an integer: -1 for less than, 0 for equal, and 1 for greater than. myArray1 = [ "full", 40, "yes" ] myArray2 = ["part", 23, "no"] myArray2 <=> myArray2 # => 0 myArray1 <=> myArray2 # => -1 myArray2 <=> myArray1 # => 1
Comparing Arrays
# The == method compares two arrays to test if they are equal. # Two arrays are considered equal if # (1) they contain the same number of elements, and # (2) each element is equal to the corresponding element in the other array (compare with Object#==). # Compare these arrays with == myArray1 = [ "full", 40, "yes" ] myArray2 = ["part", 23, "no"] myArray3 = [ "full", 40, "yes" ] myArray2 == myArray2 # => true myArray1 == myArray3 # => true myArray3 == myArray2 # => false
Comparison: Returns an integer -r +1, if this array is less than, equal to, or greater than other_array.
p [ "a", "a", "c" ] <=> [ "a", "b", "c" ] p [ 1,2, 3, 4,5, 6 ] <=>[ 1, 2 ]
eql? returns true if the objects are the same or if their content is the same.
# eql? checks to see if the values are equal (as in ==), but also checks if the values are of the same type. myArray1 = [ "full", 40, "yes" ] myArray2 = ["part", 23, "no"] myArray3 = [ "full", 40, "yes" ] myArray1 == myArray3 # => true myArray1.eql?( "full, 40, yes" ) # => false, myArray1 is not a string
Equality: equal if they contain the same number of elements and if each element is equal to the corresponding element in the other array.
puts [ "a", "c" ] == [ "a", "c", 7 ] puts [ "a", "c", 7 ] == [ "a", "c", 7 ] puts [ "a", "c", 7 ] == [ "a", "d", "f" ]