kenlistian

勤学多思

  IT博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  412 随笔 :: 0 文章 :: 23 评论 :: 0 Trackbacks

Array 作为一个类,其中方法有:(简单的就不想说明了,仅作参考)

方法 说明 调用举例 其他
[] 将返回一个新array类对象
new 创建新array对象,Array.new(size=0,object= nil) Array.new(2)
& 将2个数组相与的结果,返回array对象
* 重复扩建该数组 [1,2]*2 =>[1,2,1,2]
+ 2个数组链接到一个新数组 [1,2]+[2,3]=>[1,2,2,3]
-- 去掉数组中重复的 [1,2,2,4]--[2]=>[1,4]
<< 同+,不过是返回<<左边的Array [1,2]<<[3]=>[1,2,3]
<=> 比较,返回-1,0,1
==

是否相等,返回True or False

=== 和上一样,
assoc 查找一个Array由多维array组成的一维数组,并返回。查找的元素还得是其中一维数组的起始值
at Returns the element at index anInteger.和a[i]一样。
clear 从array中清除所有数据
collect 其实就是迭代器,所谓迭代器,通俗的说,就是某个数据结构中遍历所有元素。ruby迭代器后肯定跟着块。

arr.collect {

|obj|

...

}

常用
collect! 加了!,表示可以修改本身参数。和上一样。和c++中的Iterator一样,有可写属性
compact 去掉数组中nil部分,返回新的一个array
compact! 同上,不过只是基于本身对象的修改。不过,如果本数组对象没有nil,则调用compact!后变成nil

[1,nil,2].compact! =>[1,2]

[1,2].compact! =>nil

concat [1,2].concat([2,3])=>[1,2,2,3]
delete

删除array中数组指定的元素。

没有找到返回nil

如果delete.(anObject){|block|},如果后面跟了块的话,则没有找到时执行。

delete_at

delete_if

arr.delete_if {| | block } ,

删除满足block的元素。

a=['1','2','4', '5']

a.delete_if{|x| x>3}

each 迭代器
each_index 按index方式迭代
empty? arr.empty?====>true or false
eql? ==
fill arr.fill( anObject ) -> arr
arr.fill( anObject, start [, length ] ) -> arr
arr.fill( anObject, aRange ) -> arr
first
flatten 使数组一维化,并返回新的array [[1,2],[2,3]].flatten=>[1,2,2,3]
flatten!
include?

index

indexs 返回指定多个索引值的array
indices 同indexs
join 把数组中连接成一个字符串 [1,2].join=12
last
length 数组长度
map! collect!

nitems

计算数组中不为nil的元素个数
pack 编码数组为一定格式的字符串,其中格式要求按照string#unpack来的格式说明一样

如a=["a","b"]

a.pack("A10")

=>"a "

pop 从数组中移除最后元素,
push
rassoc 同assoc,不过查询的是第二个元素
reject! delete_if
replace
reverse
reverse!
reverse_each 迭代器
rindex
shift
size
slice 把当前数组切片。 [1,2,3,4].slice(1,2)=>[2,3]
slice!
sort
sort!
to_a
to_ary
to_s
uniq 数组去掉重复的
uniq!
unshift 添加对象到array最前位置
posted on 2008-03-24 16:06 kenlistian 阅读(5737) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。