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(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 等。

廣告

© . All rights reserved.