在每一个哈希键值中存储多个数值

当你需要在哈希表中的每一个键值都存储多个数值,你可以选择在其中存储一个数组而不仅仅是一个变量值。

on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))

如果你存储的数据是对应于同一个键值的文本,显而易见,哈希是最好的选择。在哈希的每一个元素中,你只能存储一个变量值。但是使用数组指针就可以使得在哈希的一个元素中存储一个数组指针,指向一个数组。

例如,考虑一下存储那些关联到城市的邮政编码。因为一个城市可以有多个邮政编码,你就需要考虑设计一个数组指针,用于将指针存储到哈希表中去。看看下面这个例子:

{

chomp;

($zip, $state, $city) = split / /;

push @{$zipcodes{"$city, $state"}}, $zip;

}

for $city (sort keys %zipcodes)

{

print "$city: @{$zipcodes{$city}}\n"

}

__DATA__

40502 KY LEXINGTON

40503 KY LEXINGTON

40504 KY LEXINGTON

40505 KY LEXINGTON

40511 KY LEXINGTON

40513 KY LEXINGTON

40514 KY LEXINGTON

40515 KY LEXINGTON

40516 KY LEXINGTON

40517 KY LEXINGTON

40202 KY LOUISVILLE

40213 KY LOUISVILLE

40214 KY LOUISVILLE

40215 KY LOUISVILLE

40217 KY LOUISVILLE

40220 KY LOUISVILLE

40222 KY LYNDON

40241 KY LYNDON

40242 KY LYNDON

如果总是存储一些数组指针,而且只有一个元素,你可以简化代码段。否则,你需要测试哈希的元素,看看这个元素究竟是一个数组指针还是一个简单的变量,这样才能正确地进行操作。

在一个单独的哈希元素中采用使用数组指针来存储多值的方法。

on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))

你可能感兴趣的:(Flash)