论坛首页 编程语言技术论坛

Ruby中的数组

浏览 2499 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-06   最后修改:2009-06-06

Ruby的数组和hash的关系与区别
    Ruby的数组和hash都是带索引的集合。它们都可以容纳一组对象,并允许以索引键来访问这些对象。对数组而言,索引键是一个整数;而hash则允许用任何对象作为索引键。数组和hash都能够自动增长以容纳新的元素。数组和hash都可以容纳不同类型的对象。

数组的定义
   方括号里列出元素并用逗号将它们相互隔开来创建一个数组
   arr=[1,3,3,"hello"];

对于Ruby的数组而言,每个数组元素都处于数组的一个位置上,用一个整数(既可以是正整数有可以是负整数)来索引。
当我们从左向右访问数组元素时,最左边数组元素的索引从0开始,然后依次是1,2,3,。。。
当我们从右向左访问数组元素时,最左边数组元素的索引从-1开始,然后依次是-2,-3,。。。

  在Ruby中数组中的元素可以是nil(null)。nil在Ruby中是一个对象与其它对象一样,不过它恰好代表“什么都没有”。


Ruby的数组时Array类的实例
#定一个空数组
  my_array = Array.new
  puts "数组的长度:"+my_array.size.to_s
  my_array[3]="Hello";
  puts "数组的长度:"+my_array.size.to_s
    my_array[5]="4...7";
  p my_array
  puts "数组的长度:"+my_array.size.to_s

  输出结果
数组的长度:0
数组的长度:4
[nil, nil, nil, "Hello", nil, "4...7"]
数组的长度:6


数组的%表示方法
   ruby语言可以吧一个包含多个空格的字符串转换成数组,ruby会把空格当成数组分隔符,每个空格分隔的子串都会被当作一个数组元素
   使用%w{...}或者%W{...}表示
   %w{}与%W{}的功能大致相同,但%W会进行更多额外的替换
   a=%w{ant bee cat}
   结果
    a=['ant','bee','cat']

 

 

数组的常用方法
array[n,m] 截取数组array的子数组,从索引n开始截取,截取长度为m个元素组成新数组

array[n..m] 截取数组array的子数组,从索引n开始截取,截到索引为m的元素,包括索引为m的元素

array[n...m] 截取数组array的子数组,从索引n开始截取,截到索引为m的元素,不包括索引为m的元素

就像前面提到的字符串一样.数组也可以相乘或相加
   ary=[1,2,"3"]
   p ary.size
   s=ary+[1,3];
   t=s * 2
   p s
   p t
   输出结果
3
[1, 2, "3", 1, 3]
[1, 2, "3", 1, 3, 1, 2, "3", 1, 3]

 

 

数组可以和字符串互相转化,分别使用join和split:
   ary=[1,2,"3"]
   p str = ary.join(":")
   p str.split(":")
    输出结果
"1:2:3"
["1", "2", "3"]

 

 

数组的一个常用的方法是<<,该方法会把一个值附加到数组的尾端。
 arrs= []
6.times do |value|
 arrs<<value
end
p arrs
end
输出结果
[0, 1, 2, 3, 4, 5]

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics