RosettaCodeData/Task/Collections/Tcl/collections-2.tcl

25 lines
604 B
Tcl

# create an empty array
array set h {}
# add some pair
set h(one) 1
set h(two) 2
# add more data
array set h {three 3 four 4 more {5 6 7 8}}
# iterate over it in a couple of ways
foreach key [array names h] {puts "$key -> $h($key)"}
foreach {key value} [array get h] {puts "$key -> $value"}
# pass by name
proc numkeys_byname {arrayName} {
upvar 1 $arrayName arr
puts "array $arrayName has [llength [array names arr]] keys"
}
numkeys_byname h
# pass serialized
proc numkeys_bycopy {l} {
array set arr $l
puts "array has [llength [array names arr]] keys"
}
numkeys_bycopy [array get h]