思考hash
的方法是,把它看作一堆資料(a barrel of data
)(參見圖6-2
),每乙個資料都有乙個相應的標籤。可以通過標籤訪問此標籤對應的元素。但其中是沒有「第乙個」元素的概念的。在陣列中,陣列元素從0,1
,2 開始編號。但在hash
中,沒有確定的順序,因此也沒有第乙個元素。只是一些key/value
對的集合。
keys
和values
均為任意的標量,但keys
通常轉換為字串。因此,如果將表示式50/20
作為key
s◆,則其通常被轉換為3
字元的字串「
2.5」
。這是上圖中的乙個key
。$hash
$family_name = 「flintstone」;
$family_name = 「rubble」
hash
的key
可以是任意的表示式:
$foo = 「bar」
print $family_name; #
輸出「rubble」
當將某個值儲存在已經存在的hash
元素中,以前的值會被覆蓋
$family_name = 「flintstone」; #
新增或者替換已有的hash對,乙個key(
也包括value)
$family_name .= $family_name; #
建立乙個新元素,如果原來有則追加後賦值,如果沒有則直接建立
訪問不存在的hash
元素得到undef
%family_name
%some_hash = (「foo」, 35, 「bar」, 12.4, 2.5, 「hello」, 「wilma」, 1.72e30, 「betty」, 「bye/n」);#
個數需偶,否則會警告
@array_array = %some_hash;#
我們把這稱為:將hash
展開,並將其key/value
對返回到乙個列表中。返回的key/value
對順序和存放的順序可能不同
%new_hash = %old_hash;#
不常用,因為效率較低
%inverse_hash = reverse %any_hash;#
反轉hash
,值和key
對調,但是最好你能確定原值是唯一的,否則系統採用覆蓋的方式賦值,而hash
又無序,所以你根本不知道到底誰覆蓋了誰。
my %last_name = (
「fred」 => 「flintstone」,
「dino」 => undef,
「barney」=> 「rubble」;
「betty」=> 「rubble」,
);keys
函式會返回此hash
的所有keys
,values
函式將返回所有的values
my %hash = (「a」=>1, 「b」=>2, 「c」=>3);
my @k = keys %hash;
my @v = values %hash;
此時他們的順序使用者是不能控制的,一旦再有對新增,順序就會改變,但是如果a
是第乙個,那麼1
就也是第乙個
my $count = keys %hash; #
得到3,是指有3
個key/value
對,因為此時的上下文是數字標量
while (($key, $value) = each %hash)
還可以對返回的key
陣列進行排序
foreach $key (sort keys %hash);
print 「$key => $value/n」;
#也可以不使用額外的臨時變數$value
#print 「$key => $hash/n」;
}$books = 3;
$books = 1;
很容易知道hash
的某個元素是true
還是false
,像下面這樣:
if($books)
if(exists $books)
delete
函式將某個給定的key
(包括其對應的value
)從hash
中刪除。
my $person = 「betty」;
delete $books; #
將$person
的借書卡刪除掉
foreach $person (sort keys %books)) items/n」 #fred
有3個
}}但不支援整個hash
的內插;「
%books
」僅是六個不同的字元%books
Perl語言學習筆記 6 雜湊
1 雜湊的鍵是唯一的,值可以重複!2 訪問雜湊元素 hashname 雜湊為大括號,陣列為方括號,鍵為字串 family name firstd 給雜湊元素賦值 3 雜湊鍵支援任意表示式 foo na family name 獲取 family name對應的值 4 訪問整個雜湊 family na...
Perl學習之雜湊 hash z
一 什麼是雜湊 雜湊是一種資料結構,和陣列類似,可以將值存放到其中,或者從中取回值。但是,和陣列不同的是,其索引不是數字,而是名字。也就是說,索引 這裡,我們將它叫key 不是數字而是任意的唯一的字串。key可以是任意的字串,你可以使用任何的字串作為key,但它們是唯一的。另一種思考hash 的方法...
perl 雜湊 hash 學習筆記( )
1.什麼是雜湊 雜湊是perl的一種資料型別,比較類似陣列,用於存放資料,包括2部分關鍵字keys和值value。不同於陣列,雜湊訪問元素的是按照名字訪問標量的key value.hash 用 來標示 2.hash 操作 a.增加 my hash 定義 第一種寫法 hash young author...