网络仿真NS2之——TCL语言介绍与实践

摘要

NS2网络仿真软件主要用到了TCL语言,TCL语言是很容易上手的。本文希望把TCL语言的基本语法和应用讲简单了,使得读者对NS2软件的应用有进一步的认识和实践。


1. 变量声明

set name "Joe"
puts "my name is $name"



2. 判定表达式

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"
}



d) while

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)"
}



7. 字符串

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一定要和最后一个花括号在同一行,等等。读者在调试代码的时候一定要注意了。

你可能感兴趣的:(计算机网络)