TCL学习之数组(2)
来源:互联网 发布:重庆seo公司 编辑:程序博客网 时间:2024/06/06 04:08
这篇文章接上一篇文章讲述一下关于数组的其他几个函数和知识点。
1.使用foreach 浏览数组内容;
2使用array startsearch,array anymore 和array nextelement 浏览数组内容;
3.数组相关函数列表
序号函数描述1array startsearch arrayName得到数组第一项返回的是ID2array nextelement arrayname searchID得到数组的下一项返回的是ID3array anymore arrayname searchID根据当前的ID判断是否还有内容,返回1为找到返回0表示没有找到4array donsearch arrayname search iD根据ID查找相应项。会破坏相应的状态信息。4.global 和 upvar的使用注意事项
除了global 普通变量函数内外都是用$,其他都是函数外不用$,函数内用$。
示例1:数组元素访问
array set array1 [list {123} {Abigail Aardvark} {234} {Bob Baboon}\{345} {Cathy Coyote}\{456} {Daniel Dog}]foreach id [array names array1] {puts "$array1($id) has ID:$id"}运行结果
示例2:数组元素访问方法2:
array set array1 [list {123} {Abigail Aardvark} {234} {Bob Baboon} {345} {Cathy Coyote} {456} {Daniel Dog}]proc getrec_format1 {arrayVar searchid} {global $arrayVarupvar $searchid idset record [array nextelement $arrayVar $id];return "the current ID is:$record"}proc getrec_format2 {arrayVar searchid} {global $arrayVarupvar $searchid idset record [array nextelement $arrayVar $id];return $record;}set searchId [array startsearch array1]puts ""set item 0;while {[array anymore array1 $searchId]} {incr item;if {[expr $item%2]} {set format1 [getrec_format1 array1 searchId]puts "item number:$item format1:$format1"} else {set format2 [getrec_format2 array1 searchId]puts "item number:$item format2:$format2"}}运行结果
示例3:global和upvar普通变量传值的用法
proc tryglobal {glo} {global $gloreturn "the current glo is:$glo"}proc tryglobal1 {glo} {upvar $glo glo1;#注意跟global的区别return "the current glo is:$glo1"}set glo1 "112341234"puts "[tryglobal1 glo1]";#返回glo1,用upvar #就不加$puts "[tryglobal1 glo1]"puts "[tryglobal $glo1]";#返回12341234运行结果:
示例4:globalhe
array set arr1 [list {1} {2} {3} {4}]#global传值proc tryarrglobal {arrglo} {global $arrgloreturn "the current glo is:[array names $arrglo]"}puts "[tryarrglobal arr1]"#upvar 传值proc tryarrupvar {arrupvar} {upvar $arrupvar arrupvar1return "the current upvar is:[array names arrupvar1]"}puts "[tryarrupvar arr1]"
这里在做一次总结:对于普通变量,global函数内用$,函数外也用$;对于数组global函数内用$,函数外不用$。对于普通变量,upvar函数内用$,函数外不用$;对于数组,upvar函数内不用$,函数外也不用$.
0 0
- TCL学习之数组(2)
- TCL学习之数组
- TCL学习之字符串2
- TCL学习之文件命令(2)
- Tcl学习之--表达式
- Tcl学习之--字符串
- Tcl学习之--语法|变量
- Tcl学习之--列表|字典
- Tcl学习之--命名空间
- Tcl学习之--文件操作
- Tcl学习之-- 错误|异常
- TCL学习之字符串函数
- TCL学习之info命令
- Tcl -- 数组
- Tcl学习之--流程控制|过程
- TCL学习之文件命令(1)
- FPGA学习之TCL自动化测试脚本
- TCL学习笔记之 列表命令
- 初窥Linux 之 Web开发中我常用的Linux命令
- ES错误记录
- Spring Boot 学习19--修改端口号
- SQL 优化时你会谈些什么?
- Linux运维笔记-文档总结- selinux对文件的控制
- TCL学习之数组(2)
- Android剪裁Uri
- thinkphp3.2.3 sql操作
- Unity 武器拖尾效果
- Angular快速入门4---组件化入门篇1
- js对象取值方式
- C/C++10大算法之插入排序
- yum install kubernetes 提示docker冲突失败问题
- input只能输入数字