次のハッシュがあります。
my %villains = {
"Boba" => "Fett",
"Darth" => "Vader",
"Moff" => "Tarkin",
}
次に、次のように印刷します。
print "".%villains;
次の出力が得られます。
1/8
これを実現する Perl のセマンティクスは何ですか?
ありがとうございました!
次のハッシュがあります。
my %villains = {
"Boba" => "Fett",
"Darth" => "Vader",
"Moff" => "Tarkin",
}
次に、次のように印刷します。
print "".%villains;
次の出力が得られます。
1/8
これを実現する Perl のセマンティクスは何ですか?
ありがとうございました!
スカラーコンテキストでハッシュを評価しています。これを行うと、ハッシュが使用されていない場合は false と評価されない限り、実際には、バケットの総数に対するタッチされたバケットの数の一部が返されます。詳細については、この perldocを参照してください (セクションの終わり近く)。
これは、ハッシュの内部に不慣れな人のために説明を使用することができます: アイテムがハッシュに追加されると、ハッシュアルゴリズムに基づいてバケットに配置されるため、より効率的に取得できます。
あなたはおもちゃの車を集めています。車を簡単に見つけるために、色に基づいて異なるバケツに入れることにしました。赤、黄、緑、青、黒の車用のバケツがあります。
新しい緑のフォード マスタングをコレクションに追加して、緑のバケットに入れます。次にこの車を見つけたいときは、緑のバケツに直接移動して、検索対象を絞り込むことができます。
この例では、車のコレクションは でhash
、各車は でhash entry
、色はhashing algorithm
です。コレクションには赤、青、黒の車も含まれているため4/5
、バケツを使用してかなり効率的に配置されています。
ただし、このシステムを赤い車のコレクションに使用する場合、ハッシュ アルゴリズムは非常に非効率的になります。バケットのみを使用1/5
し、特定の車を見つけるには、コレクション全体を検索する必要があります。