日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
術(shù)語匯編PerlHash使用入門手冊

本文和大家重點討論一下PerlHash的用法,哈希是一種數(shù)據(jù)結(jié)構(gòu),和數(shù)組類似,但是,和數(shù)組不同的是,其索引不是數(shù)字,而是名字。也就是說,索引(這里,我們將它叫key)不是數(shù)字而是任意的唯一的字符串。

創(chuàng)新互聯(lián)建站:成立于2013年為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000多家公司企業(yè)提供了專業(yè)的成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需網(wǎng)站策劃由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

一、什么是PerlHash

PerlHash是一種數(shù)據(jù)結(jié)構(gòu),和數(shù)組類似,可以將值存放到其中,或者從中取回值。但是,和數(shù)組不同的是,其索引不是數(shù)字,而是名字。也就是說,索引(這里,我們將它叫key)不是數(shù)字而是任意的唯一的字符串。

key可以是任意的字符串,你可以使用任何的字符串作為key,但它們是唯一的。
另一種思考hash的方法是,把它看作一堆數(shù)據(jù)(abarrelofdata),每一個數(shù)據(jù)都有一個相應(yīng)的標(biāo)簽??梢酝ㄟ^標(biāo)簽訪問此標(biāo)簽對應(yīng)的元素。但其中是沒有“第一個”元素的概念的。在數(shù)組中,數(shù)組元素從0,Perl學(xué)習(xí)之哈希hash_馬亮的計算機技術(shù)1,2開始編號。但在hash中,沒有確定的順序,因此也沒有第一個元素。只是一些key/value對的集合。

keys和values均為任意的標(biāo)量,但keys通常轉(zhuǎn)換為字符串。因此,如果將表達式50/20作為keys,則其通常被轉(zhuǎn)換為3字符的字符串“2.5”。
由于Perl的“沒有不必要的限制”的設(shè)計哲學(xué):hash可以是任意大小,從空hash(沒有key/value對),到任何你內(nèi)存允許的大小。
keys是唯一的,但values可以重復(fù)。hash的value可以是數(shù)字,字符串,undef,或者它們的混合,但key是唯一的。

為什么使用PerlHash

可以把hash看作一個簡單的數(shù)據(jù)庫,其中每一個key下面可以有一塊數(shù)據(jù)。如果你的任務(wù)是關(guān)于:“查詢重復(fù)的”,“唯一的”,“交叉引用的”,“查詢表”,則hash很可能在這類應(yīng)用中幫上Perl學(xué)習(xí)之哈希hash_馬亮的計算機技術(shù)你的忙。

二、PerlHash元素的存取

要訪問hash元素,可以使用下面的語法:$hash{$some_key}
這和訪問數(shù)組元素的方法有些類似,這里下標(biāo)(key)上使用的是花括號({}),而不是方括號([])?,F(xiàn)在key的表達式是字符串,而非數(shù)字。
hash的名字和Perl中其它的標(biāo)識符的命名規(guī)則是一樣的(字母,數(shù)字,下劃線組成,但不能由數(shù)字開頭)。
訪問不存在的hash元素將得到undef。

1.作為整體的PerlHash

要引用整個hash,使用百分號(%)作為前綴。
為了方便,hash可以轉(zhuǎn)換為列表,或者反過來。

2.PerlHash賦值

可以使用如下的語法在hash之間拷貝:
%new_hash=%old_hash;
將hash轉(zhuǎn)變成其它形式更加常見。例如,我們可以將hash反轉(zhuǎn):
%inverse_hash=reverse%any_hash;

3.大箭頭符號(=>)

當(dāng)給hash賦值時,有時并不明顯哪些元素是keys,那些是values,因此發(fā)明了大箭頭符號(=>)。在需要逗號的時候,都可以使用大箭頭符號替換。
如:

 
 
 
  1. my%last_name=("www"=>1,"eee"=>2,); 

三、PerlHash函數(shù)

某些有用的函數(shù)可以對整個hash進行操作。

1.keys和values函數(shù)

keys函數(shù)會返回此hash的所有keys,values函數(shù)將返回所有的values。如果hash中沒有元素,則此函數(shù)將返回空列表。

 
 
 
  1. my%hash=("a"=>1,"b"=>2,"c"=>3);printmy@k=keys%hash;printmy@v=values%hash; 

2.each函數(shù)

如果想迭代hash的每一個元素,一種通常的方法是使用each函數(shù),它將返回key/value對應(yīng)的2個元素列表。
當(dāng)對同一個hash函數(shù)進行一次迭代時,將返回下一個key/value對,直到所有的元素均被訪問。如果沒有更多的key/value對,則each函數(shù)將返回空表。

 
 
 
  1.  
  2. my%hash=("a"=>1,"b"=>2,"c"=>3);while(($key,$value)=each%hash){print"$key=>$value\n";} 

當(dāng)然,each返回的key/vlaue對,順序是混亂的(它其順序和keys和values函數(shù)返回的順序相同)。如果想將其按序排放,可以對它們排序(使用sort)。
 

 
 
 
  1. my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);foreach$key(sortkeys%hash){$value=$hash{$key};print"$key=>$value\n";} 

四、PerlHash的通常用法

1.exists函數(shù)

要查看hash中是否存在某個key,可以使用exists函數(shù),如果hash中存在此key,則返回true,與是否有對應(yīng)的value無關(guān)。

 
 
 
  1. my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);if(exists$hash{'a'}){print"true";} 

2.delete函數(shù)

delete函數(shù)將某個給定的key(包括其對應(yīng)的value)從hash中刪除。如果不存在這個key,則什么也不做,不會有警告或者錯誤信息。

 
 
 
  1. my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);delete$hash{'a'};foreach$key(sortkeys%hash){$value=$hash{$key};print"$key=>$value\n";} 

3.PerlHash元素的內(nèi)插

你可以在雙引號的字符串中使用單個hash元素,但不支持整個hash的內(nèi)插。

 
 
 
  1. my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);foreach$key(sortkeys%hash){print"$key=>$hash{$key}\n";}  

【編輯推薦】

  1. Perl哈希表的存取和常用函數(shù)
  2. 四種方法實現(xiàn)Perl哈希表創(chuàng)建
  3. 實例解析Perl多進程技術(shù)的應(yīng)用
  4. 技術(shù)分享 利用Perl哈希表建立鍵-值數(shù)據(jù)映射
  5. Perl哈希表用法解析

標(biāo)題名稱:術(shù)語匯編PerlHash使用入門手冊
網(wǎng)頁URL:http://www.dlmjj.cn/article/ccscdgh.html