ruby 數(shù)組使用教程
更新時(shí)間:2007年11月24日 13:06:53 作者:
你通過(guò)在方括號(hào)里列出元素并用逗號(hào)將它們相互隔開(kāi)來(lái)創(chuàng)建一個(gè)數(shù)組. Ruby的數(shù)組可以適應(yīng)不同的對(duì)象類(lèi)型
ruby> ary = [1, 2, "3"]
[1, 2, "3"]
就像前面提到的字符串一樣.數(shù)組也可以相乘或相加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
我們可用索引來(lái)訪(fǎng)問(wèn)數(shù)組的任意一部分.
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"]
(負(fù)數(shù)索引表示到數(shù)組末尾的偏移,而不是從開(kāi)頭算起.)
數(shù)組可以和字符串互相轉(zhuǎn)化,分別使用join和split:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
哈希表
一個(gè)關(guān)聯(lián)數(shù)組不通過(guò)連續(xù)的數(shù)字索引來(lái)訪(fǎng)問(wèn),而是通過(guò)任何類(lèi)型的主鍵(key)訪(fǎng)問(wèn).這樣的數(shù)組有時(shí)被叫作哈希(hash)或者字典(dictionary).在Ruby里,我們趨向于用哈希這個(gè)術(shù)語(yǔ).將一對(duì)對(duì)的元素用逗號(hào)分隔開(kāi),并用大括號(hào)({})括起來(lái),這樣就組成了一個(gè)哈希表.你用一個(gè)關(guān)鍵字在哈希表里進(jìn)行搜索,就像你在數(shù)組里用索引來(lái)提取數(shù)據(jù)一樣.
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> ary = [1, 2, "3"]
[1, 2, "3"]
就像前面提到的字符串一樣.數(shù)組也可以相乘或相加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
我們可用索引來(lái)訪(fǎng)問(wèn)數(shù)組的任意一部分.
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"]
(負(fù)數(shù)索引表示到數(shù)組末尾的偏移,而不是從開(kāi)頭算起.)
數(shù)組可以和字符串互相轉(zhuǎn)化,分別使用join和split:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
哈希表
一個(gè)關(guān)聯(lián)數(shù)組不通過(guò)連續(xù)的數(shù)字索引來(lái)訪(fǎng)問(wèn),而是通過(guò)任何類(lèi)型的主鍵(key)訪(fǎng)問(wèn).這樣的數(shù)組有時(shí)被叫作哈希(hash)或者字典(dictionary).在Ruby里,我們趨向于用哈希這個(gè)術(shù)語(yǔ).將一對(duì)對(duì)的元素用逗號(hào)分隔開(kāi),并用大括號(hào)({})括起來(lái),這樣就組成了一個(gè)哈希表.你用一個(gè)關(guān)鍵字在哈希表里進(jìn)行搜索,就像你在數(shù)組里用索引來(lái)提取數(shù)據(jù)一樣.
復(fù)制代碼 代碼如下:
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"}
您可能感興趣的文章:
相關(guān)文章
ruby實(shí)現(xiàn)github第三方認(rèn)證
GitHub在用戶(hù)認(rèn)證過(guò)程中采用了雙匙機(jī)制,在雙匙加密機(jī)制中,只有合法用戶(hù)才擁有私匙,只要GitHub在收到請(qǐng)求時(shí)可以證明提交請(qǐng)求的客戶(hù)端上擁有該私匙,即可以確認(rèn)該操作是由合法用戶(hù)發(fā)起的。我們通過(guò)ruby來(lái)簡(jiǎn)單模擬下吧。2015-06-06rails "No route matches" 錯(cuò)誤的解決方法
有時(shí)候 rails 會(huì)出現(xiàn)2008-12-12詳解Ruby中正則表達(dá)式對(duì)字符串的匹配和替換操作
這篇文章主要介紹了Ruby中正則表達(dá)式對(duì)字符串的匹配和替換操作,包括對(duì)結(jié)果分組和一些特殊全局變量的介紹,需要的朋友可以參考下2016-04-04Ruby中的public、private、protected區(qū)別小結(jié)
這篇文章主要介紹了Ruby中的public、private、protected區(qū)別小結(jié),即Ruby中訪(fǎng)問(wèn)控制符的區(qū)別總結(jié),需要的朋友可以參考下2014-08-08Ruby升級(jí)后no such file to load -- readline解決辦法
這篇文章主要介紹了Ruby升級(jí)后no such file to load -- readline解決辦法,需要的朋友可以參考下2015-04-04mac及l(fā)inux下搭建ruby+rails環(huán)境
本文給大家分享了如何在mac以及Linux系統(tǒng)中安裝ruby+rails環(huán)境,非常詳細(xì),而且有圖有真相,希望大家能夠喜歡2017-11-11