Perl 雜湊陣列
我們已經在前面的部分中瞭解了標量和陣列。
標量究竟做了什麼?它只儲存整數和字串。
陣列到底是做什麼的?它是一組標量,你可以使用索引訪問陣列的每個元素。但是,當你有成百上千的記錄時,使用陣列是個好的選擇嗎?我們會忘記哪個索引對應的哪個數值。為了克服這種情況,我們有像 perl hash
這樣的東西。
什麼是雜湊陣列?
雜湊陣列可以容納陣列也可以容納的標量。唯一的區別是我們沒有任何索引,而是我們有鍵和值。宣告雜湊陣列,以 %
開頭,後跟雜湊陣列的名稱。讓我們看一個例子,我們如何定義 Perl 雜湊陣列以及如何將它與陣列區分開來
考慮三個人的例子,他們的年齡以陣列表示。
@array=('Sainath',23,'Krishna',24,'Shruthi',25); #This is how an array looks.
print @array;
輸出:
Sainath33Krishna24Shruthi25
這樣就很難了解每個人的年齡,因為我們需要記住所有人的姓名和年齡的索引位置。如果你有 3 個名字,但是當你有 1000 個或更多時呢?不再那麼簡單了。
我們可以使用雜湊陣列來克服這個問題。
雜湊陣列示例:
print %hash=( 'Sainath' => 23, 'Krishna' => 24, 'Shruthi' => 25); # This is how we create a hash.
print %hash=('Sainath',23,'Krishna',24,'Shruthi',25);# This way of assigning is called list.
輸出:
Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi2
我們現在宣告瞭一個雜湊陣列,但是我們如何訪問或列印它?應使用其關聯鍵訪問雜湊陣列中的每個元素,併為其分配值。因此,雜湊陣列中的每個鍵和值之間存在一對一的對映。
為了列印任何人的年齡,你只需要記住該人的姓名。
print $hash{'Krishna'}; # This how we should access a hash. Key enclosed within {}.
你可能想知道為什麼我使用 $hash {KeyName}
,記住雜湊陣列是一個標量集合。因此,我們可以使用表示標量的$來訪問每個雜湊陣列元素。
注意:雜湊陣列中的每個 Key 都應該是唯一的,否則它將覆蓋你之前分配的值。
我們也可以列印整個雜湊陣列。
%hash=( 'Tom' => 23);
%newHash=%hash; # Assigning hash to a new hashprint %newHash;
print %newHash;
輸出:
Tom23
新增 Perl 雜湊陣列
如你所見,我們已經有一個雜湊陣列 %newHash
,現在我們需要新增更多的條目。
$newHash{'Jim'}=25;
$newHash{'John'}=26;
$newHash{'Harry'}=27;
print %newHash;
輸出:
Jim25John26Harry27
Perl 刪除鍵
你可能希望從雜湊陣列中刪除條目。這就是我們如何做到這一點。
delete $newHash{'Jim'};#This will delete an entry from the hash.
delete
是 Perl 的內建函式。
在這裡,我們將看到一個為陣列分配雜湊陣列的示例。
@array=%newHash;
print "@array";
注意:每當你列印雜湊陣列或將雜湊陣列儲存到陣列中時,順序可能是不同的。
我們只能將雜湊陣列的鍵或值分配給陣列。
@arraykeys= keys(%newHash);
@arrayvalues=values(%newHash);
print "@arraykeys\n";
print "@arrayvalues\n"; # \n to print new line.
要刪除雜湊陣列中的所有條目,我們可以直接將雜湊陣列值分配給 null。
%newHash =();
這將重新定義它為沒有條目的雜湊陣列。