📜  Tcl-数据类型

📅  最后修改于: 2020-10-16 06:24:49             🧑  作者: Mango


Tcl的原始数据类型是字符串,通常我们可以在Tcl上找到仅字符串的引号。这些原始数据类型又为列表和关联数组创建复合数据类型。在Tcl中,数据类型不仅可以表示简单的Tcl对象,而且可以表示复杂的对象,例如句柄,图形对象(主要是小部件)和I / O通道。让我们看一下上面每个细节。

简单的Tcl对象

在Tcl中,它是整数,布尔值,浮点数还是字符串。当您想使用一个变量时,可以直接给它赋一个值,在Tcl中没有声明的步骤。这些不同类型的对象可以有内部表示形式。如果需要,它可以将一种数据类型转换为另一种数据类型。给变量赋值的语法如下:

#!/usr/bin/tclsh

set myVariable 18
puts $myVariable

执行以上代码后,将产生以下结果-

18

上面的语句将创建一个变量名myVariable并将其存储为字符串,即使我们没有使用双引号。现在,如果我们尝试对该变量进行算术运算,它将自动变成整数。一个简单的例子如下所示-

#!/usr/bin/tclsh

set myVariable 18
puts [expr $myVariable + 6 + 9]

执行以上代码后,将产生以下结果-

33

需要注意的重要一件事是,这些变量没有任何默认值,必须在使用前为其分配值。

如果尝试使用puts进行打印,则数字将转换为适当的字符串。与其他语言相比,具有内部和外部两种表示形式的Tcl可以帮助Tcl轻松创建复杂的数据结构。而且,由于其动态对象性质,Tcl效率更高。

字符串表示

与其他语言不同,在Tcl中,当它只是一个单词时,不需要双引号。一个例子可以是-

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

执行以上代码后,将产生以下结果-

hello

当我们要表示多个字符串,可以使用双引号或花括号。它显示如下-

#!/usr/bin/tclsh

set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable

执行以上代码后,将产生以下结果-

hello world
hello world

清单

列表不过是一组元素。使用双引号或花括号的一组单词可用于表示一个简单列表。一个简单的列表如下所示-

#!/usr/bin/tclsh

set myVariable {red green blue}
puts [lindex $myVariable 2]
set myVariable "red green blue"
puts [lindex $myVariable 1]

执行以上代码后,将产生以下结果-

blue
green

关联数组

关联数组的索引(键)不一定是整数。通常,它是一个字符串,其行为类似于键值对。一个简单的例子如下所示-

#!/usr/bin/tclsh

set  marks(english) 80
puts $marks(english)
set  marks(mathematics) 90
puts $marks(mathematics)

执行以上代码后,将产生以下结果-

80
90

提手

Tcl句柄通常用于表示文件和图形对象。这些可以包括对网络请求的句柄,也可以包括其他通道,例如串行端口通信,套接字或I / O设备。以下是创建文件句柄的示例。

set myfile [open "filename" r]

您将在Tcl文件I / O章节中看到有关文件的更多详细信息。