数组是一组使用索引对应元素的排列方式。常规数组的语法如下所示。

set ArrayName(Index) value

用于创建简单数组的例子,如下所示。

#!/usr/bin/tclsh

set languages() Tcl
set languages() "C Language"
puts $languages()
puts $languages()

当上述代码被执行时,它会产生以下结果。

Tcl
C Language

数组大小

用于计算数组大小的语法,如下所示。

[array size variablename]

用于打印数组的大小的示例如下所示。

#!/usr/bin/tclsh

set languages() Tcl
set languages() "C Language"
puts [array size languages]

当上述代码被执行时,它会产生以下结果。

2

数组迭代

虽然数组索引可以是非连续的,像索引1,然后索引10等指定的值。但是如果它们是连续的,我们可以用数组迭代访问数组的元素。一个简单的数组迭代的打印元素,如下所示。

#!/usr/bin/tclsh

set languages() Tcl
set languages() "C Language"
for { set index } { $index < [array size languages] } { incr index } {
puts "languages($index) : $languages($index)"
}

当上述代码被执行时,它会产生以下结果。

languages() : Tcl
languages() : C Language

关联数组

在TCL,所有数组本质是相关联的。数组存储并没有任何具体的顺序进行检索。关联数组使用索引但不一定都是数字。一个简单的例子,关联数组与非数字索引如下所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age)
puts $personA(Name)
puts $personA(Age)

当上述代码被执行时,它会产生以下结果。

Dave

数组的索引

用于检索数组索引的语法如下所示。

[array names variablename]

用于打印数组的大小的示例如下所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age)
puts [array names personA]

当上述代码被执行时,它会产生以下结果。

Age Name

关联数组迭代

可以使用数组的索引来遍历数组。如下例子所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age)
foreach index [array names personA] {
puts "personA($index): $personA($index)"
}

当上述代码被执行时,它会产生以下结果。

personA(Age):
personA(Name): Dave

TCL数组的更多相关文章

  1. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  2. tcl之变量-unset 简单变量和数组

  3. tcl之变量-数组array

  4. Tcl internal variables

    Tcl internal variables eryar@163.com 在Tcl中内置了一些变量,并赋予了一定的功能.内置变量列表如下: 变量名称 功能描述 argc 指命令行参数的个数. argv ...

  5. TCL校园招聘——软件开发工程师(java) 只招5个。。。

    简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技 ...

  6. TCL/Expect交互式自动化测试概要 - - ITeye技术网站

    TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行"可程序化"会话的脚本语言,是一种可以提供"分支和嵌 ...

  7. php文件格式数组

    一个文件格式对应的数组$mime_types = array('gif' => 'image/gif','jpg' => 'image/jpeg','jpeg' => 'image/ ...

  8. Tcl学习之--语法|变量

    [语法|变量] l 脚本.命令和单词 Tcl提供了大约100条命令.Tk提供了另外几十条,脚本包括一条或多条,通过换行符或分号分隔开. set a 12 set b 23 也能够写成一行: set a ...

  9. Tcl语言笔记之一

    1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100                               // ...

随机推荐

  1. Python学习札记(三十二) 面向对象编程 Object Oriented Program 3

    参考:访问限制 NOTE 1.eg. #!/usr/bin/env python3 class Student(object): """docstring for Stu ...

  2. POJ 2486 Apple Tree(树形dp)

    http://poj.org/problem?id=2486 题意: 有n个点,每个点有一个权值,从1出发,走k步,最多能获得多少权值.(每个点只能获得一次) 思路: 从1点开始,往下dfs,对于每个 ...

  3. C#SendMessage用法

    C#SendMessage用法 分类: C#操作内存相关 2011-11-26 23:52 1255人阅读 评论(0) 收藏 举报 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口 ...

  4. c++ 重设容器的长度(resize)

    #include <iostream> #include <vector> using namespace std; int main () { vector<int&g ...

  5. Java回顾之网络通信

    在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础是Socket,在TCP连接中,我们会使用ServerSocket和Soc ...

  6. Java中泛型区别以及泛型擦除详解

    一.引言 复习javac的编译过程中的解语法糖的时候看见了泛型擦除中的举例,网上的资料大多比较散各针对性不一,在此做出自己的一些详细且易懂的总结. 二.泛型简介 泛型是JDK 1.5的一项新特性,一种 ...

  7. DCOS(centos 7.4/7.6)

    https://dcos.io/releases/ https://downloads.dcos.io/dcos/stable/1.12.0/dcos_generate_config.sh https ...

  8. bzoj1037

    题解: 定义f[i][j][a][b]表示已经排了i个人 还能拍j个男的(那么就还有m-i+j个是女的) 还能连续拍a个男的,b个女的 我是递推的 考虑后面一个拍男的还是女的 注意要判断边界 代码: ...

  9. 笔记本用HDMI、VGA连接高清电视全过程实录2——各种问题

    内容中包含 base64string 图片造成字符过多,拒绝显示

  10. python的自省函数, 快速找出BUG的良器

    python内置的好多自省函数,  合理使用可快速查找相关提示, 快速找到问题点, 以下开始具体说明 1. dir()  列出对象的所有属性和方法 如:  dir(list)  可以列出列表的所有属性 ...