初识Tcl(二):Tcl 数据类型

举报
李锐博恩 发表于 2021/07/15 03:36:41 2021/07/15
【摘要】 目录 简单的Tcl对象 字符串表示 列表 - List 关联数组 句柄 原始数据类型在Tcl中是字符串,我们常常可以找到字符串和引用在Tcl语言中。这些原始数据类型依次创建复合数据类型列表和关联数组。在Tcl中,数据类型可以表示不仅是简单Tcl的对象,但也可以代表相同的句柄,图形对象(主要是小部件)复杂的对象,和I/O通道。让我们来看看详细介绍每一个上面。 简...

目录

简单的Tcl对象

字符串表示

列表 - List

关联数组

句柄


原始数据类型在Tcl中是字符串,我们常常可以找到字符串和引用在Tcl语言中。这些原始数据类型依次创建复合数据类型列表和关联数组。在Tcl中,数据类型可以表示不仅是简单Tcl的对象,但也可以代表相同的句柄,图形对象(主要是小部件)复杂的对象,和I/O通道。让我们来看看详细介绍每一个上面。

简单的Tcl对象

在Tcl中,无论它是一个整数,布尔,浮点数,或一个字符串。当使用一个变量,可以直接赋值给它,Tcl没有声明一步。可以有内部表示为这些不同类型的对象。它可以将一个数据类型到其它需要时。分配值给变量的语法如下。


  
  1. #!/usr/bin/tclsh
  2. set myVariable 18
  3. puts $myVariable

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

18

 

上述声明将创建一个变量名myVariable,并将其存储为一个字符串,即使我们没有使用双引号。现在,如果试图让该变量的运算,它会自动变成一个整数。一个简单的例子如下所示。


  
  1. #!/usr/bin/tclsh
  2. set myVariable 18
  3. puts [expr $myVariable + 6 + 9]

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

33

 

需要注意的一个重要的事情是,这些变量并没有任何默认值,必须指定的值在使用之前。

如果我们尝试使用puts来打印,这个数字被转化为正确的字符串。有两种表示方法,内部和外部,帮助 Tcl 创建复杂的数据结构很容易相对于其他语言。另外,Tcl 更有效,因为它是动态对象的性质。

字符串表示

不同于其他语言,在TCL,不需要包含双引号,它只有一个字。一个例子如下,


  
  1. #!/usr/bin/tclsh
  2. set myVariable hello
  3. puts $myVariable

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

hello

 

当我们想表示多个字符串,可以使用双引号或大括号。它如下所示。


  
  1. #!/usr/bin/tclsh
  2. set myVariable "hello world"
  3. puts $myVariable
  4. set myVariable {hello world}
  5. puts $myVariable

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


  
  1. hello world
  2. hello world

列表 - List

列表不过是一组元素。一组单词或者使用双引号或大括号可以用来表示一个简单的列表。一个简单的列表如下所示。


  
  1. #!/usr/bin/tclsh
  2. set myVariable {red green blue}
  3. puts [lindex $myVariable 2]
  4. set myVariable "red green blue"
  5. puts [lindex $myVariable 1]

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


  
  1. blue
  2. green

关联数组

关联数组有一个索引(key)但不一定是整数。人们普遍认为就像键值对是字符串。一个简单的例子如下所示。


  
  1. #!/usr/bin/tclsh
  2. set marks(english) 80
  3. puts $marks(english)
  4. set marks(mathematics) 90
  5. puts $marks(mathematics)

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


  
  1. 80
  2. 90

句柄

TCL句柄通常用于表示文件和图形对象。这些可以包括句柄网络请求以及其它渠道,如串口通讯,套接字或I/O设备。下面是创建一个文件句柄的例子。

set myfile [open "filename" r]
 

您会在Tcl文件I/O一章看到更多内容细节。

转载:https://www.yiibai.com/tcl/tcl_data_types.html#article-start

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/85158196

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。