TCL脚本中的数组处理问题
我有一个清单如下所述TCL脚本中的数组处理问题,tcl,Tcl,我有一个清单如下所述 echo $mem_ip_list2 sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32 这是一对两个字符串 key value sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32 我需要创建一个数组并打印脚本中显
echo $mem_ip_list2
sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32
这是一对两个字符串
key value
sdmmc dpram
eth ram1
usbhs sram
cmcc tag
cmcc data
tram mem
flexram 8k32
flexram 4k32
我需要创建一个数组并打印脚本中显示的值
我写的剧本是
array set array1 $mem_ip_list2
SETUP> foreach { q z } [array get array1 ] {
puts " ip : $q , mem : $z "
}
此脚本的输出
ip : tram , mem : mem
ip : sdmmc , mem : dpram
ip : usbhs , mem : sram
ip : eth , mem : ram1
ip : cmcc , mem : data
ip : flexram , mem : 4k32
但是缺少两个键值对,它们是重复的键
flexram 8k32
cmcc tag
你能帮我提供一些关于这方面的见解吗 只是不要将其存储在数组中。将原始列表用作键:值对的列表:
set mem_ip_list2 {sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32}
foreach {key value} $mem_ip_list2 {puts "ip : $key , mem : $value"}
根据定义,钥匙是独一无二的谢谢Jerry!但是,我们是否有一些机制来实现阵列的预期结果,不,这不是阵列的预期目的。感谢Glenn,我们现在可以继续了。
ip : sdmmc , mem : dpram
ip : eth , mem : ram1
ip : usbhs , mem : sram
ip : cmcc , mem : tag
ip : cmcc , mem : data
ip : tram , mem : mem
ip : flexram , mem : 8k32
ip : flexram , mem : 4k32