zoukankan      html  css  js  c++  java
  • [NS2]TCL语言基本语法

    (来自:《NS2仿真实验-多媒体和无线网络通信》)

    1. 变量(Variable)和变量替换(Variable Substitution

      tcl变量是在第一次使用set的指令来指派变量的值时所产生的。可以使用unset来取消这个变量。当取用或者改变变量值时,只要在变量名称前加上一个“$”,就可以取用或改变变量内的值。指令eval用于执行一个tcl script

    2. 表达式

      tcl中表达式通常使用“expr”指令去判断表达式的真假或去求表达式的值。

    1   set value [expr 1>=2]

     

    3. 指令替换

      使用[]来完成指令的替换,即把“原tcl script执行结果”取代“原 tcl script”。

     

    1   set age 23
    2   puts “My age is $age”

     

    4. 流程控制

    控制指令包括,if-else, switch, while, for, foreach等。

    if {condiftion} {body} elseif{condition} {body} else {body}

    1   set value 23
    2   if {$value < 20} {puts “$age is less than 20”}
    3   elseif {$value == 20} {puts “$age is 20” }
    4   else {puts “$age is more than 20” }

    switch expression { case1{} case2 {} default{}}

    1   set var 4
    2   switch var{
    3       2 {puts “$var is 2”}
    4       4 {puts “$var is 4”}
    5       default {puts “$var”}
    6   }

    while {condition} {}

    1   set i 0
    2   while {$i < 5} {
    3       puts “$i”
    4       incr i 1
    5   }

    for {initialization} {condition} {change variable} {body}

    1   for {set i 1} {$i < 5} {incr i 1} {
    2       puts “$i”
    3   }

    foreach variable {variables} {body}

    1     foreach i {a e i o u} {
    2         puts “$i is vowel”
    3     }    

    5. 程序

      定义程序的基本语法为 proc name params body,即proc name {paramets} {body}。其中,name是函数名称,params是参数列表,body是程序主体。

    1   proc sum {a b} {
    2       return [expr $a + $b]
    3   }
    4   
    5   set num1 15
    6   set num2 16
    7   set sum [sum $num1 $num2] ;#有参数的调用方法
    8   puts “The sum is $sum”

      在函数中使用外部变量,即全局变量,需要使用global来声明。

     

     1   set num 15
     2   
     3   proc fun {} {
     4       set tmp 14
     5       puts “The local variable is $tmp”
     6       global num
     7       puts “The global variable is $num”
     8   }
     9   
    10   fun  ;#无参数情况下的函数的调用

     

    6. 数组

      使用set array_name(index) value的格式来声明数组,并且index可以使用数字或字符串。

     

    1   set num_array(0) “Zero”
    2   set num_array(1) “One”
    3   for {set i 0} {$i < 2} {incr i 1} {
    4       put &num_array($i)    
    5   }

     

    1   set person_info(name) “John”
    2   set person_info(age) “283   
    4   # foreach thing {name age} {
    5   foreach thing [array names person_info] {
    6       puts “$thing == $person_info($thing)”
    7   }

      这里需要注意,在数组名称与“(”之间不能有空格。

     

     

     

     

  • 相关阅读:
    Devpexpress 打印预览问题
    常用DOS命令
    C# datetimePicker控件格式设置
    DevExpress中GridControl的属性设置
    C++ 学习1
    layui 时间控件选择一闪就消失,打不开问题解决办法
    echarts报错,Uncaught Error: series.type should be specified?
    vue项目中,在mian.js文件中引入scss文件后,报错
    记一次在vue中使用scss报错
    使用hexo搭建个人博客时引入图片失败
  • 原文地址:https://www.cnblogs.com/life91/p/3651489.html
Copyright © 2011-2022 走看看