ary + ["foo", "bar"] [1, " />

568数据 568数据


ruby 数组使用教程

网络编程 ruby 数组使用教程 06-22
你通过在方括号里列出元素并用逗号将它们相互隔开来创建一个数组. Ruby的数组可以适应不同的对象类型

ruby> ary = [1, 2, "3"]
[1, 2, "3"]


就像前面提到的字符串一样.数组也可以相乘或相加

ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]


我们可用索引来访问数组的任意一部分.

ruby> ary[0]
1
ruby> ary[0,2]
[1, 2]
ruby> ary[0..1]
[1, 2]
ruby> ary[-2]
2
ruby> ary[-2,2]
[2, "3"]
ruby> ary[-2..-1]
[2, "3"]


(负数索引表示到数组末尾的偏移,而不是从开头算起.)

数组可以和字符串互相转化,分别使用join和split:

ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]


哈希表

一个关联数组不通过连续的数字索引来访问,而是通过任何类型的主键(key)访问.这样的数组有时被叫作哈希(hash)或者字典(dictionary).在Ruby里,我们趋向于用哈希这个术语.将一对对的元素用逗号分隔开,并用大括号({})括起来,这样就组成了一个哈希表.你用一个关键字在哈希表里进行搜索,就像你在数组里用索引来提取数据一样.


ruby> h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
ruby> h[1]
2
ruby> h["2"]
"4"
ruby> h[5]
nil
ruby> h[5] = 10 # appending value
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1 # deleting value
2
ruby> h[1]
nil
ruby> h
{5=>10, "2"=>"4"}

ruby 一些简单的例子
现在我们将前面的一些示例程序的代码坼开来分析一下.下面的例子出现在简单的例子一节.deffact(n)ifn==01elsen*fact(n-1)endendprintfact(ARGV[0].to_i),"n"因为是第一

ruby 流程控制 方法
这章我们将讨论更多的Ruby流程控制.case我们用case语句测试有次序的条件.正如我们所见的,这和C,Java的switch相当接近,但更强大.rubyi=8rubycasei|when1,2..5|print"1.

ruby 迭代器使用方法
迭代器并不是Ruby发明的.它广泛地运用于各种面向对象语言.在Lisp中也有,只是不这么叫罢了.尽管如此,迭代器的概念并不为许多人熟悉,因此我们将在此做


编辑:568数据

标签:数组,索引,就像,例子,逗号