2
可以將哈希值與語句或函數關聯嗎?將語句或函數作爲值的鍵散列?
比方說,我有一個鍵的列表,我希望查找哈希表中的項目的值。對應於檢測到的鍵/值,我們是否可以直接執行一組語句? (無需遍歷所有鍵/值列表)
我正在尋找比使用函數指針更好的解決方案。
可以將哈希值與語句或函數關聯嗎?將語句或函數作爲值的鍵散列?
比方說,我有一個鍵的列表,我希望查找哈希表中的項目的值。對應於檢測到的鍵/值,我們是否可以直接執行一組語句? (無需遍歷所有鍵/值列表)
我正在尋找比使用函數指針更好的解決方案。
你可以使用匿名函數作爲哈希值,
my %hash = (
func1 => sub { return "Hello"; },
func2 => sub { return "world"; },
);
print $hash{func1}->(), " ", $hash{func2}->(), "\n";
當然。你可以這樣寫代碼
use strict;
use warnings;
my %dispatch = (
aa => sub {
print "AA\n";
},
bb => sub {
print "BB\n";
},
cc => sub {
print "CC\n";
},
);
for (qw/ aa cc /) {
$dispatch{$_}->();
}
輸出
AA
CC
什麼是使用函數指針的問題,我們怎麼知道你會認爲什麼是*「更好」 *? – Borodin