Tcl提供了一些内置的功能(程序),用于各种操作。这包括,
-
列表处理函数。
-
字符串处理函数。
-
数组处理函数。
-
字典处理函数。
-
文件I/O处理函数。
-
命名空间和包处理函数。
-
数学处理函数。
-
操作系统处理函数。
数学和系统函数以外的都包含在前面的章节。数学与系统内置函数说明如下。
数学函数
Tcl的数学函数可列于下表中。
SN | 方法名称 | 描述 |
---|---|---|
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 | 由y计算x相除的浮点余数。如果y是0,则返回一个错误。 |
13 | hypot x y | 计算一个直角三角形的斜边的长度 sqrt(x*x+y*y). |
14 | int arg | 计算,如果arg是相同的宽度的机器字的整数值,则返回arg,否则转换arg为整数。 |
15 | log arg | 计算arg的自然对数。 |
16 | log10 arg | 计算以10为底arg的对数。 |
17 | pow x y | 计算y的x的幂值。如果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一个伪随机数,它必须是一个整数,用来复位的种子随机数发生器。 |
24 | tan arg | 计算arg的正切值。 |
25 | tanh arg | 计算arg的双曲正切值。 |
26 | wide arg | 计算用于arg,如果它不是整数值至少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 - 秒函数返回当前时间以秒为单位。
-
clock - 格式化函数格式化秒到的日期和时间。
-
clock - 扫描函数扫描输入字符串,并将其转换为秒。
-
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
下表提供了可用于格式化的日期和时间的列表字符串。
SN | 格式 | 描述 |
---|---|---|
1 | %a | 天缩写形式,例如:Sun. |
2 | %A | 天完全形式,例如:Sunday. |
3 | %b | 月份缩写形式。 |
4 | %B | 月份完整形式。 |
5 | %d | 月份中日期 |
6 | %j | 年份的Julian日期。 |
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 等 |