- Tcl 教程
- Tcl - 首页
- Tcl - 概述
- Tcl - 环境设置
- Tcl - 特殊变量
- Tcl - 基本语法
- Tcl - 命令
- Tcl - 数据类型
- Tcl - 变量
- Tcl - 运算符
- Tcl - 决策
- Tcl - 循环
- Tcl - 数组
- Tcl - 字符串
- Tcl - 列表
- Tcl - 字典
- Tcl - 过程
- Tcl - 包
- Tcl - 命名空间
- Tcl - 文件 I/O
- Tcl - 错误处理
- Tcl - 内置函数
- Tcl - 正则表达式
- Tk 教程
- Tk - 概述
- Tk - 环境
- Tk - 特殊变量
- Tk - 小部件概述
- Tk - 基本小部件
- Tk - 布局小部件
- Tk - 选择小部件
- Tk - 画布小部件
- Tk - 超级小部件
- Tk - 字体
- Tk - 图像
- Tk - 事件
- Tk - 窗口管理器
- Tk - 几何管理器
- Tcl/Tk 有用资源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用资源
- Tcl/Tk - 讨论
Tcl - 内置函数
Tcl 提供了许多内置函数(过程)用于各种操作。这包括 -
除了数学和系统函数外,上述每个函数都在前面的章节中介绍过。下面将解释数学和系统内置函数。
数学函数
Tcl 中可用的数学函数列在下表中 -
| 序号 | 方法及描述 |
|---|---|
| 1 | abs arg 计算 arg 的绝对值。 |
| 2 | acos arg 计算 arg 的反余弦。 |
| 3 | asin arg 计算 arg 的反正弦。 |
| 4 | atan arg 计算 arg 的反正切。 |
| 5 | atan2 y x 计算其参数 (y/x) 的商的反切。 |
| 6 | ceil arg 计算大于或等于一个数字的最小整数。 |
| 7 | cos arg 计算 arg 的余弦。 |
| 8 | cosh arg 计算 arg 的双曲余弦。 |
| 9 | double arg 如果 arg 是浮点数,则返回 arg,否则将 arg 转换为浮点数并返回转换后的值。 |
| 10 | exp arg 计算指数函数(e 的 arg 次幂)。 |
| 11 | floor arg 计算小于或等于 arg 的最大整数。 |
| 12 | fmod x y 计算 x 除以 y 的浮点余数。如果 y 为 0,则返回错误。 |
| 13 | hypot x y 计算直角三角形斜边的长度 sqrt(x*x+y*y)。 |
| 14 | int arg 如果 arg 是与机器字长相同的整数,则返回 arg,否则将 arg 转换为整数。 |
| 15 | log arg 计算 arg 的自然对数。 |
| 16 | log10 arg 计算 arg 的以 10 为底的对数。 |
| 17 | pow x y 计算 x 的 y 次幂。如果 x 为负数,则 y 必须是整数。 |
| 18 | rand 计算 0 到 1 之间的伪随机数。 |
| 19 | round arg 计算 arg 四舍五入到最接近的整数的值。 |
| 20 | sin arg 计算 arg 的正弦。 |
| 21 | sinh arg 计算 arg 的双曲正弦。 |
| 22 | sqrt arg 计算 arg 的平方根。arg 必须为正数。 |
| 23 | srand arg 计算 0 到 1 之间的伪随机数。arg(必须是整数)用于重置 rand 随机数生成器的种子。 |
| 24 | tan arg 计算 arg 的正切。 |
| 25 | tanh arg 计算 arg 的双曲正切。 |
| 26 | wide arg 如果 arg 不是 64 位整数,则计算至少 64 位宽的整数(如果 arg 是 32 位数,则通过符号扩展)。 |
下面给出一些使用数学函数的示例 -
#!/usr/bin/tclsh namespace import ::tcl::mathfunc::* puts [tan 10] puts [pow 10 2] puts [ceil 10.34] puts [hypot 10 20] puts [srand 45] puts [log 10] puts [srand 45]
执行上述代码时,会产生以下结果 -
0.6483608274590866 100.0 11.0 22.360679774997898 0.0003521866166741525 2.302585092994046 0.0003521866166741525
系统函数
Tcl 中重要的系统函数包括:
clock - seconds 函数,返回以秒为单位的当前时间。
clock - format 函数,将秒格式化为日期和时间。
clock - scan 函数,扫描输入字符串并将其转换为秒。
open - 函数,用于打开文件。
exec - 函数,用于执行系统命令。
close - 函数,用于关闭文件。
下面列出了一些上述函数的示例 -
#!/usr/bin/tclsh
#get seconds
set currentTime [clock seconds]
puts $currentTime
#get format
puts "The time is: [clock format $currentTime -format %H:%M:%S]"
puts "The date is: [clock format $currentTime -format %D]"
set date "Jun 15, 2014"
puts [clock scan $date -format {%b %d, %Y}]
puts [exec ls]
puts [exec dir]
set a [open input.txt]
puts [read $a];
puts $a
close $a
执行上述代码时,会产生以下结果 -
1402819756 The time is: 03:09:16 The date is: 06/15/2014 1402808400 input.txt main.tcl input.txt main.tcl This is the file you can use to provide input to your program and later on open it inside your program to process the input. file3
下表提供了可用于格式化日期和时间的列表字符串。
| 序号 | 格式及描述 |
|---|---|
| 1 | %a 简写形式的日期,例如:Sun。 |
| 2 | %A 完整形式的日期,例如:Sunday。 |
| 3 | %b 简写形式的月份。 |
| 4 | %B 完整形式的月份。 |
| 5 | %d 月份中的日期。 |
| 6 | %j 一年中的儒略日。 |
| 7 | %m 月份的数字。 |
| 8 | %y 两位数的年份。 |
| 9 | %Y 四位数的年份。 |
| 10 | %H 24 小时制的小时。 |
| 11 | %I 12 小时制的小时。 |
| 12 | %M 分钟。 |
| 13 | %S 秒。 |
| 14 | %p AM 或 PM。 |
| 15 | %D 数字格式的日期,mm/dd/yy。 |
| 16 | %r 12 小时制的时间。 |
| 17 | %R 24 小时制的时间,不含秒。 |
| 18 | %T 24 小时制的时间,含秒。 |
| 19 | %Z 时区名称,例如 GMT、IST、EST 等。 |