Ruby 数组

  • 数组

    Ruby数组是任何对象的有序,整数索引集合。数组中的每个元素都与索引关联并由索引引用。数组索引从0开始,如CJava。假定相对于数组末尾为负索引,索引-1表示数组的最后一个元素,-2是数组中最后一个元素的下一个,依此类推。Ruby数组可以包含StringIntegerFixnumHashSymbol等对象,甚至可以包含其他Array对象。Ruby数组不像其他语言中的数组那样严格。Ruby数组在添加元素时会自动增长。
  • 创建数组

    有很多创建或初始化数组的方法。一种方法是使用类new方法-
    
    names = Array.new
    
    您可以在创建数组时设置数组的大小-
    
    names = Array.new(20)
    
    现在,数组名称的大小或长度为20个元素。您可以使用size或length方法返回数组的大小-
    
    names = Array.new(20)
    puts names.size  # This returns 20
    puts names.length # This also returns 20
    
    尝试一下
    您可以为数组中的每个元素分配一个值,如下所示:
    
    names = Array.new(4, "mac")
    puts "#{names}"
    
    尝试一下
    您还可以将块与new一起使用,并使用该块求和的结果填充每个元素-
    
    nums = Array.new(10) { |e| e = e * 2 }
    puts "#{nums}"
    
    尝试一下
    数组还有另一种方法[]。它是这样的-
    
    nums = Array.[](1, 2, 3, 4,5)
    
    数组创建的另一种形式如下-
    
    nums = Array[1, 2, 3, 4,5]
    
    Ruby 核心中提供的Kernel模块具有Array方法,该方法仅接受单个参数。在这里,该方法将范围(Range)作为参数来创建数字数组-
    
    digits = Array(0..9)
    puts "#{digits}"
    
    尝试一下
  • 数组内置方法

    我们需要一个Array对象的实例来调用Array方法。如我们所见,以下是创建Array对象实例的方法-
    
    Array.[](...) [or] Array[...] [or] [...]
    
    这将返回一个填充有给定对象的新数组。现在,使用创建的对象,我们可以调用任何可用的实例方法。例如-
    
    digits = Array(0..9)
    num = digits.at(6)
    puts "#{num}"
    
    尝试一下
  • 数组打包

    请尝试以下示例打包各种数据。
    
    a = [ "a", "b", "c" ]
    n = [ 65, 66, 67 ]
    puts a.pack("A3A3A3")   #=> "a  b  c  "
    puts a.pack("a3a3a3")   #=> "a\000\000b\000\000c\000\000"
    puts n.pack("ccc")      #=> "ABC"
    
    更多内置函数,参考方法,请查阅参考手册。