Tcl 内建函数

Tcl 内建函数

Tcl提供了许多用于各种操作的内建函数。包括:

  • 处理列表的函数。

  • 处理字符串的函数。

  • 处理数组的函数。

  • 处理字典的函数。

  • 处理文件I/O的函数。

  • 创建命名空间和包的函数。

  • 数学运算的函数。

  • 系统操作的函数。

上述除了数学和系统函数外,都在前几章中有介绍。数学和系统的内建函数在下面进行解释。

数学函数

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(xx+yy)。
14 int arg 计算arg是否为与机器字宽度相同的整数值,如果是则返回arg,否则将arg转换为整数。
15 log arg 计算arg的自然对数。
16 log10 arg 计算以10为底的arg的对数。
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位宽度的整数值(如果arg是32位数,则通过符号扩展),则计算为arg。

以下是使用数学函数的一些示例:

#!/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]
Bash

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

0.6483608274590866
100.0
11.0
22.360679774997898
0.0003521866166741525
2.302585092994046
0.0003521866166741525
Bash

系统函数

在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 formatcurrentTime -format %H:%M:%S]"
puts "The date is: [clock format currentTime -format %D]"

set date "Jun 15, 2014"
puts [clock scandate -format {%b %d, %Y}]

puts [exec ls]
puts [exec dir]

set a  [open input.txt]
puts [read a];
putsa
close $a
Bash

当以上代码执行时,它产生以下结果−

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
Bash

下表提供了可用于格式化日期和时间的字符串列表。

编号 格式与描述
1 %a 缩写形式的星期几,如:周日。
2 %A 完整形式的星期几,如:星期日。
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 上午或下午。
15 %D 以数字表示的日期,mm/dd/yy。
16 %r 12小时制的时间。
17 %R 24小时制的时间,不包括秒数。
18 %T 24小时制的时间,包括秒数。
19 %Z 时区名称,如GMT,IST,EST等。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程