TCL数据类型
原始数据类型在Tcl中是字符串,我们常常可以找到字符串和引用在Tcl语言中。这些原始数据类型依次创建复合数据类型列表和关联数组。在Tcl中,数据类型可以表示不仅是简单Tcl的对象,但也可以代表相同的句柄,图形对象(主要是小部件)复杂的对象,和I/O通道。让我们来看看详细介绍每一个上面。
简单的Tcl对象
在Tcl中,无论它是一个整数,布尔,浮点数,或一个字符串。当使用一个变量,可以直接赋值给它,Tcl没有声明一步。可以有内部表示为这些不同类型的对象。它可以将一个数据类型到其它需要时。分配值给变量的语法如下。
#!/usr/bin/tclsh set myVariable
puts $myVariable
当上述代码被执行时,它会产生以下结果。
上述声明将创建一个变量名myVariable,并将其存储为一个字符串,即使我们没有使用双引号。现在,如果试图让该变量的运算,它会自动变成一个整数。一个简单的例子如下所示。
#!/usr/bin/tclsh set myVariable
puts [expr $myVariable + + ]
当上述代码被执行时,它会产生以下结果。
需要注意的一个重要的事情是,这些变量并没有任何默认值,必须指定的值在使用之前。
如果我们尝试使用puts来打印,这个数字被转化为正确的字符串。有两种表示方法,内部和外部,帮助 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
列表 - List
列表不过是一组元素。一组单词或者使用双引号或大括号可以用来表示一个简单的列表。一个简单的列表如下所示。
#!/usr/bin/tclsh
set myVariable {red green blue}
puts [lindex $myVariable ]
set myVariable "red green blue"
puts [lindex $myVariable ]
当上述代码被执行时,它会产生以下结果。
blue
green
关联数组
关联数组有一个索引(key)但不一定是整数。人们普遍认为就像键值对是字符串。一个简单的例子如下所示。
#!/usr/bin/tclsh set marks(english)
puts $marks(english)
set marks(mathematics)
puts $marks(mathematics)
当上述代码被执行时,它会产生以下结果。
句柄
TCL句柄通常用于表示文件和图形对象。这些可以包括句柄网络请求以及其它渠道,如串口通讯,套接字或I/O设备。下面是创建一个文件句柄的例子。
set myfile [open "filename" r]
TCL数据类型的更多相关文章
- TCL语言笔记:TCL基础语法
一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...
- OpenCascade Tcl vs. ACIS Scheme
OpenCascade Tcl vs. ACIS Scheme eryar@163.com 摘要Abstract:本文通过OpenCascade的Tcl/Tk和ACIS的Scheme的对比来说明脚本语 ...
- 《A Tour of PostgreSQL Internals》学习笔记——系统表和数据类型
上周末学习了<A Tour of PostgreSQL Internals>的第一部分(View 1),今天我们继续打开书本,继续View 2 部分. View 2 Postgresql的 ...
- TCL语言笔记:TCL中的String命令
一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...
- 内外连接、组函数、DDL、DML和TCL
前言 cross join ,是笛卡尔积:nature join 是自然连接. 正文 内外连接 inner join inner join 的inner能够省略. 内连接 在一个表中可以找到在还有一个 ...
- Tcl语言笔记之一
1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100 // ...
- Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...
- tcl脚本
tcl,全名tool command language,是一种通用的工具语言. 1)每个命令之间,通过换行符或者分号隔开: 2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词 ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
随机推荐
- JS+Canvas的棋盘游戏和Java的动态结合
二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏. 因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的. 首先生成15*15的棋盘,(先不考虑前后端交互),其后Ha ...
- office的project的激活码
8XWTK-7DBPM-B32R2-V86MX-BTP8PMVR3D-9XVBT-TBWY8-W3793-FR7C326K3G-RGBT2-7W74V-4JQ42-KHXQWD4HF2-HMRGR-R ...
- linux 系统忘记登录密码
linux6/6.5再启动时,按e ->在输入行最后面 输入空格 再输入single ->启动设置密码即可 单用户模式 在centos7需要 按e -> 然后滚动列表,找到ro(ro ...
- BZOJ 4569 【SCOI2016】 萌萌哒
题目链接:萌萌哒 我先不吐槽题目名……这道题的并查集好像我们考过……既然那道题我没写就来把这道题写了吧(雾 这道题由于合并操作只有\(m\)次,那么很显然的一个想法就是把建一棵线段树类似物,然后每次在 ...
- Codeforces Round #404 (Div. 2) A,B,C,D,E 暴力,暴力,二分,范德蒙恒等式,树状数组+分块
题目链接:http://codeforces.com/contest/785 A. Anton and Polyhedrons time limit per test 2 seconds memory ...
- SSH基本管理和配置文件的使用
服务端:linl_S IP:10.0.0.15 客户端:lin_C IP:10.0.0.16 SSHD服务 SSH协议:安全外壳协议.为Secure Shell的缩写.SSH为建立在应 ...
- 查找一个Class到底在那一个jar文件里
整理自己的一些笔记,发觉这个命令 ,看起来是用来找一个Class到底在那一个jar文件里的. 虽然没有再测一下,估计是好使的. 先在博客园里记下来,防止自己忘掉. findstr /S /M org. ...
- Python——列表表达式
https://www.cnblogs.com/xuyuanyuan123/p/6718403.html
- AndroidStudio怎样导入library项目开源库
AndroidStudio是一款非常强大的android程序开发软件,在里面集成了几乎所有android开发中需要使用的工具,编译.运行.打包.开发.调试等功能一应俱全,可以使用起来非常方便. 今天要 ...
- sql语句中处理金额,把分换算成元
问题,sql语句中直接将金额/100返回的结果会有多个小数位. as value from account as acc left join conCategory as cate on acc.ca ...