加载哈希映射 - 对象键对
load a map of hash - object key pair
请考虑这个例子,我将 map!
保存到一个文件中,然后想将它加载回来并访问它的键和值。它的键是散列(INTEGER!,由 checksum
计算),它的值是块:
Rebol []
bl1: make object! [
name: "first"
age: 42
]
bl2: make bl1 []
bl2/name: "second"
bl2/age: 30
hash1: checksum to-binary to-string bl1
hash2: checksum to-binary to-string bl2
m1: make map! []
repend m1 [hash1 bl1]
repend m1 [hash2 bl2]
save %./map_example.ls m1
m2: do load %./map_example.ls
probe join "m2: " type? m2
它returns"m2: map!"
文件%map_example.ls包含:
make map! [
2749161 make object! [
name: "first"
age: 42
]
4111405 make object! [
name: "second"
age: 30
]
]
如何读回 map!
以访问其作为对象的键和值?
foreach
可行吗?
SAVE
使用不完美但更易读的格式。使用 SAVE/ALL
完全按照它们应有的方式保留所有值(SAVE/ALL
使用 #[datatype! value]
形式的调用序列化格式)。
此外,只需使用 LOAD
而不是 DO LOAD
来取回数据。在这种情况下不需要 DO
- LOAD
将字符串转换为 Rebol 值,因为它只是数据,而不是脚本,所以不需要 DO
它(你可以,但它只是returns 本身)。
请考虑这个例子,我将 map!
保存到一个文件中,然后想将它加载回来并访问它的键和值。它的键是散列(INTEGER!,由 checksum
计算),它的值是块:
Rebol []
bl1: make object! [
name: "first"
age: 42
]
bl2: make bl1 []
bl2/name: "second"
bl2/age: 30
hash1: checksum to-binary to-string bl1
hash2: checksum to-binary to-string bl2
m1: make map! []
repend m1 [hash1 bl1]
repend m1 [hash2 bl2]
save %./map_example.ls m1
m2: do load %./map_example.ls
probe join "m2: " type? m2
它returns"m2: map!"
文件%map_example.ls包含:
make map! [
2749161 make object! [
name: "first"
age: 42
]
4111405 make object! [
name: "second"
age: 30
]
]
如何读回 map!
以访问其作为对象的键和值?
foreach
可行吗?
SAVE
使用不完美但更易读的格式。使用 SAVE/ALL
完全按照它们应有的方式保留所有值(SAVE/ALL
使用 #[datatype! value]
形式的调用序列化格式)。
此外,只需使用 LOAD
而不是 DO LOAD
来取回数据。在这种情况下不需要 DO
- LOAD
将字符串转换为 Rebol 值,因为它只是数据,而不是脚本,所以不需要 DO
它(你可以,但它只是returns 本身)。