網路模擬NS2之——TCL語言介紹與實踐
阿新 • • 發佈:2019-02-09
摘要
NS2網路模擬軟體主要用到了TCL語言,TCL語言是很容易上手的。本文希望把TCL語言的基本語法和應用講簡單了,使得讀者對NS2軟體的應用有進一步的認識和實踐。
1. 變數宣告
set name "Joe"
puts "my name is $name"
set trueOrFalse [expr 0==1]
puts "1 is true, 0 is false: $trueOrFalse"
3. 運算表示式
puts "He is [expr 2*3], but his IQ is [expr 100+20]"
4. 流程控制
a) if-else
set value 3 if { $value == 1} { puts "3==1" } elseif {$value == 2} { puts "3==2" } else { puts "3==3" }
b) switch
set value 3
switch $value {
1 {
puts "case 1"
}
2 {
puts "case 2"
}
3 {
puts "case 3"
}
default {
puts "Nothing"
}
}
c) for
for {set i 1} {$i <= 3} {incr i 1} {
puts "i = $i"
}
set i 1 while {$i <= 3} { puts "i = $i" incr i 1 }
5. 方法(或使用者定義函式)
使用者自定義方法,即procedures, 基本的語法為 proc name params body。
proc sum {a b} {
return [expr $a + $b]
}
set a 1
set b 2
set result [sum $a $b]
puts "The sum of a and b is $result"
6. 陣列
set arr(1) 1 set arr(2) 2 set arr(3) 3 for {set i 1} {$i <= 3} {incr i 1} { puts "arr($i) is $arr($i)" }
set str "Hello, string"
puts "$str"
8. 輸出
set file [open "/home/linux/Desktop/myfile" "w"]
puts $file "Hello, these words are going to be written to a file"
9. 注意事項(TCL語言初學者程式碼的問題絕大多數是空格,括號不標準所造成的!!!)
TCL語言的語法格式很嚴格的,嚴格程度跟python類似!不能多空格,不能少空格。比如:花括號之間必定要有一個空格;一條命令佔用一行;elseif,或者else一定要和最後一個花括號在同一行,等等。讀者在除錯程式碼的時候一定要注意了。