成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

術語匯編 PerlHash使用入門手冊

開發 架構
PerlHash是一種數據結構,和數組類似,可以將值存放到其中,或者從中取回值。但是,和數組不同的是,其索引不是數字,而是名字。

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

一、什么是PerlHash

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

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

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

為什么使用PerlHash

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

二、PerlHash元素的存取

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

1.作為整體的PerlHash

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

2.PerlHash賦值

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

3.大箭頭符號(=>)

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

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

三、PerlHash函數

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

1.keys和values函數

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

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

2.each函數

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

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

當然,each返回的key/vlaue對,順序是混亂的(它其順序和keys和values函數返回的順序相同)。如果想將其按序排放,可以對它們排序(使用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函數

要查看hash中是否存在某個key,可以使用exists函數,如果hash中存在此key,則返回true,與是否有對應的value無關。

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

2.delete函數

delete函數將某個給定的key(包括其對應的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元素的內插

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

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

【編輯推薦】

  1. Perl哈希表的存取和常用函數
  2. 四種方法實現Perl哈希表創建
  3. 實例解析Perl多進程技術的應用
  4. 技術分享 利用Perl哈希表建立鍵-值數據映射
  5. Perl哈希表用法解析

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-27 08:59:19

FlexBuilder

2010-05-27 14:38:37

2010-06-07 13:02:46

Hadoop簡介

2010-08-05 14:51:36

AdobeFlex

2010-07-13 10:21:19

2010-09-17 09:19:08

Java API

2010-06-10 18:27:00

UML語言

2010-07-19 16:56:56

Perl線程

2010-07-26 16:54:15

Perl引用

2010-08-10 10:32:02

Flex語言

2010-06-11 09:33:47

UML順序圖

2010-06-29 15:06:14

UML建模

2010-07-30 10:23:46

Flex數據綁定

2010-09-26 17:04:48

JVMJava虛擬機

2010-06-11 18:27:39

UML對象圖

2010-07-08 09:50:11

UML構件圖

2010-07-13 09:02:16

Perl

2010-06-02 14:28:23

SVN版本控制

2010-06-08 17:18:50

UML建模技術

2010-06-10 15:49:55

UML協作圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线观看 | 99久久精品国产一区二区三区 | 亚洲国产一区视频 | 9久久婷婷国产综合精品性色 | 欧美成人一区二区三区 | 久久久久久999 | 激情av网站 | 精品成人| 国产免费福利小视频 | 亚洲综合国产精品 | 激情一区二区三区 | 日韩一区二区av | 综合久久一区 | 日韩欧美在线观看视频 | 狠狠综合久久av一区二区小说 | 久草高清视频 | 成人精品一区二区 | 亚洲欧美综合 | 日韩三级在线 | 欧美一区二区三区日韩 | 久久精品视频播放 | 99热国产免费 | 久久精品国产亚洲夜色av网站 | 久久久噜噜噜久久中文字幕色伊伊 | 国产欧美精品 | 自拍视频网站 | 天天看夜夜 | 三级在线观看 | 99精品欧美一区二区三区综合在线 | 久久国内精品 | 欧美综合一区二区 | 精品九九| 欧美狠狠操 | 欧美大片一区 | 91久久精品国产91久久性色tv | 欧美一级欧美三级在线观看 | 成人国产精品 | 午夜视频在线免费观看 | 中文字幕精品一区二区三区精品 | 成人免费三级电影 | 亚洲视频在线播放 |