激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Ruby - Ruby中的數(shù)組和散列表的使用詳解

Ruby中的數(shù)組和散列表的使用詳解

2020-05-03 12:21腳本之家 Ruby

這篇文章主要介紹了Ruby中的數(shù)組和散列表的使用詳解,是Ruby入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

Ruby數(shù)組(arrays)和散列表(hashes)是被索引的收集(indexed collections).

兩者都存儲(chǔ)對(duì)象的集合,通過(guò)鍵(key)來(lái)訪問(wèn)。數(shù)組的鍵是整數(shù)。而散列表支持以任何對(duì)象作為它的鍵。數(shù)組和散列表會(huì)按需調(diào)整大小來(lái)保存新的元素。訪問(wèn)數(shù)組元素是高效的,但是散列表提供了靈活性。任何具體的數(shù)組或散列表可以保存不同類型的對(duì)象。

使用數(shù)組字面量(array literal)--即方括號(hào)之間放一組元素--可以創(chuàng)建和初始化新的數(shù)組對(duì)象。有了數(shù)組對(duì)象,在方括號(hào)之間提供索引便可以訪問(wèn)單個(gè)元素,如下例所示,注意Ruby數(shù)組的索引從零開(kāi)始。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
a=[1,'cat',3.14]     #有三個(gè)元素的數(shù)組
 
#訪問(wèn)第一個(gè)元素
 
a[0]  -> 1
 
#設(shè)置第三個(gè)元素
 
a[2] = nil
 
#顯示這個(gè)數(shù)組
 
a ->[1,'cat',nil]

你可能已注意到在這個(gè)例子中使用了nil這個(gè)特別的值。許多語(yǔ)言中nil(或null)的概念是指“沒(méi)有對(duì)象”。在Ruby中,這是不一樣的;nil是一個(gè)對(duì)象,與別的對(duì)象一樣,只不過(guò)它用來(lái)表示沒(méi)有任何東西的對(duì)象。

有時(shí)候創(chuàng)建一組單詞的數(shù)組是一件痛苦的事情--要處理許多引號(hào)和逗號(hào)。幸運(yùn)的是,Ruby有一種快捷方式:%w 能夠完成我們想做的事情。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
a = ['ant','bee','cat','dog','elk']
 
a[0] -> "ant"
 
a[3] -> "dog"
 
#this is the same:
 
a = %w{ant bee cat dog elk}
 
a[0] -> "ant"
 
a[3] -> "dog"

Ruby的散列表與數(shù)組相似。散列表字面量(hash literal)使用花括號(hào)而不是方括號(hào)。這個(gè)字面量必須為每一項(xiàng)提供兩個(gè)對(duì)象:一個(gè)鍵(key)和一個(gè)值(value)。

例如,你可能想將樂(lè)器映射到它們所屬的交響樂(lè)章節(jié),可以用散列表這么來(lái)做:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
inst_section = {
 
'cello'   => 'string',
 
'clarinet' => 'woodwind',
 
'drum'  => 'percussion',
 
'oboe'   => 'woodwind',
 
'trumpet' => 'brass',
 
'violin'   => 'string'
 
}

=>的左邊是鍵(key),右邊是其對(duì)應(yīng)的值(value)。在一個(gè)散列表里面,鍵必須是唯一的(不能有兩個(gè)“drum”項(xiàng))。散列表里面的鍵和值可以是任意對(duì)象--你可能會(huì)有這樣的散列表,它的值是數(shù)組或別的散列表等。

散列表使用與數(shù)組相同的方括號(hào)表示法來(lái)進(jìn)行索引。

?
1
2
3
4
5
inst_section['oboe']           -> "woodwind"
 
inst_section['cello']            -> "string"
 
inst_section['bassoon']         -> nil

正如上例所示,默認(rèn)情況下,如果用一個(gè)散列表沒(méi)有包含的鍵進(jìn)行索引,散列表就返回nil。通常這樣是很方便的,比如在條件表達(dá)式中nil就意味著false。而有時(shí)候你可能想改變這個(gè)默認(rèn)動(dòng)作。比如使用散列表來(lái)計(jì)算每個(gè)鍵出現(xiàn)的次數(shù)時(shí),如果這個(gè)默認(rèn)值是0的話就會(huì)很方便。這很容易做到:當(dāng)創(chuàng)建一個(gè)新的空散列表時(shí),可以指定一個(gè)默認(rèn)值。

?
1
2
3
4
5
6
7
histogram = Hash.new(0)
 
histogram['key1']            ->0
 
histogram['key1'] = histogram['key1']+1
 
histogram['key1']            ->1

 

延伸 · 閱讀

精彩推薦
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個(gè)技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyRuby進(jìn)行文件信息輸出實(shí)例代碼

    Ruby進(jìn)行文件信息輸出實(shí)例代碼

    Ruby進(jìn)行文件信息輸出實(shí)例代碼,數(shù)據(jù)是隨機(jī)的,所以每次的記錄都會(huì)不同。 ...

    ruby教程網(wǎng)2962020-04-10
  • Ruby簡(jiǎn)要說(shuō)明Ruby中的迭代器

    簡(jiǎn)要說(shuō)明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動(dòng)態(tài)語(yǔ)言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
  • Ruby剖析 Ruby 訪問(wèn)控制

    剖析 Ruby 訪問(wèn)控制

    前面,我們說(shuō) Ruby 沒(méi)有函數(shù),只有方法.而且實(shí)際上有不止一種方法.這一節(jié)我們介紹 訪問(wèn)控制 (accesscontrols). 想想當(dāng)我們?cè)谧罡邔佣皇窃谝粋€(gè)類的定義里定義...

    ruby教程網(wǎng)3572020-04-08
  • RubyRuby簡(jiǎn)潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象

    Ruby簡(jiǎn)潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象

    這篇文章主要介紹了Ruby簡(jiǎn)潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象,本文是學(xué)習(xí)筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • RubyRuby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例

    Ruby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例

    這篇文章主要介紹了Ruby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例,建造者模式將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表...

    范孝鵬2192020-05-07
  • RubyRuby環(huán)境下安裝使用bundler來(lái)管理多版本的gem

    Ruby環(huán)境下安裝使用bundler來(lái)管理多版本的gem

    這篇文章主要介紹了Ruby環(huán)境下安裝使用bundler來(lái)管理多版本的gem的方法,舉了Ruby On Rails中的應(yīng)用實(shí)例來(lái)進(jìn)行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyCentOS中配置Ruby on Rails環(huán)境

    CentOS中配置Ruby on Rails環(huán)境

    經(jīng)過(guò)一個(gè)上午的折騰,終于把ROR環(huán)境在CentOS中搞定,繞了很多彎路,把文章寫(xiě)下來(lái)總結(jié)一下 ...

    可樂(lè)加糖4762020-04-12
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 高清国产一区二区三区四区五区 | 午夜在线小视频 | www成人在线观看 | 黄色视屏免费在线观看 | 成人毛片在线 | va免费视频 | 国产九九热视频 | 成人爽a毛片免费啪啪红桃视频 | 伊人久久国产精品 | 19禁国产精品福利视频 | 伦一区二区三区中文字幕v亚洲 | 欧美成人做爰高潮片免费视频 | 羞羞电影网 | 国产大片在线观看 | 精品一区二区三区网站 | 在线观看毛片视频 | 免费一级欧美大片视频 | 国产一区二区欧美精品 | 夜添久久精品亚洲国产精品 | 嫩呦国产一区二区三区av | 妇女毛片| 最新一级毛片 | 午夜小电影 | 精品国产一区二区三区四区在线 | 久久精品一区视频 | 欧美国产第一页 | 免费在线观看成人av | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产在线久 | 亚洲国产精品久久久久婷婷老年 | 污黄视频在线播放 | 亚洲成人中文字幕在线 | 中文日韩在线视频 | 色婷婷久久一区二区 | 免费观看黄色一级视频 | 一级毛片免费高清 | 久久亚洲精品久久国产一区二区 | 1区2区3区国产 | 欧美一区高清 | 91网站链接 | 国产成人自拍av |