e>

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 还不是 1,则为 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 − 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 等。