TCL內置函數

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 等


以下是糾正/補充內容:

圖表中17 pow函數解釋錯誤,應為x的y次冪;圖表中17 pow函數解釋錯誤,應為x的y次冪圖表中17 pow函數解釋錯誤,應為x的y次冪圖表中17 pow函數解釋錯誤,應為x的y次冪  提交時間:2019-09-17
上一篇: TCL錯誤處理 下一篇: TCL正則運算式