Tcl语言

变量和变量赋值

set a "Hello World!" #将字符串赋值给变量a

puts "NS2 say $a" #输出字符串的内容,其中$a表示变量a的内容

输出:NS2 say Hello World!

表达式

Tcl中的表达式用expr这个指令来求解。(expression)

set value [expr 0==1]#判断0==1是否成立

puts $value

输出:0

set value [expr 2+3]

puts $value

输出:5

流程控制

if-else:

set my_planet "earth"
if {$my_planet == "earth"}
{
...
}
elseif {$my_planet == "venus"}
{
...
}
else
{
...
}

switch:

set num_legs
switch $num_legs
{
{puts "It could be a human."}
{puts "It could be an cow."}
{puts "It could be an ant."}
default {puts "It could be anything."}
}

for:

for {set i } {$i < } {incr i }
{
puts "In the for loop, and i == $i"
}

while:

set i
while($i < )
{
puts "In the while loop, and i == $i"
incr i
}

foreach:

foreach vowel{a e i o u}
{
puts "$vowel is a vowel"
}

输出:a is a vowel

     e is a vowel

     i is a vowel

     o is a vowel

     u is a vowel

过程

Tcl中的【过程】与C语言中的函数类似:proc name params body

name:过程名

params:参数列表

body:过程的主体

例如:

proc sum_proc {a b}
{
return [expr $a + $b]
}
set num1
set num2
set sum [sum_proc $num1 $num2]
puts "The sum is $sum"

输出:The sum is 36

有一点值得注意的是,如果在过程外面定义了某个全局变量,而想在过程中使用这个全局变量,需要在过程中声明,声明方式为:global 全局变量名

数组

set myarray() "Zero"
set myarray() "One"
set myarray() "Two" for {set i } {$i < } {incr i }
{
puts $myarray($i)
}

输出:Zero

     One

     Two

数组的索引也可以为字符串

set person_info(name) "Fred Smith"
set person_info(age) ""
set person_info(occupation) "Plumber" foreach thing {name age occupation}
{
puts "$thing == $person_info($thing)"
}

输出:name == Fred Smith

    age == 25

    occupation == Plumber

当数组中的索引很多时,没必要在foreach时列出每一个索引,而可以用foreach thing [array names person_info]来代替。

NS2学习笔记(二)的更多相关文章

  1. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  2. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  3. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  4. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  5. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  6. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  7. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

随机推荐

  1. buf.readFloatBE()

    buf.readFloatBE(offset[, noAssert]) buf.readFloatLE(offset[, noAssert]) offset {Number} 0 noAssert { ...

  2. Leetcode题目practice

    目录 Leetcode题目解答 1. 删除最外层的括号 2. 两数之和 3. 宝石与石头 4. 移除元素 5.删除排序数组中的重复项 6.寻找两个有序数组的中位数 7.盛最多水的容器 8.存在重复元素 ...

  3. 浅谈对java-GC的理解

    前段时间,一个线上项目忽然很卡,通过监控,发现内存很高,果不其然在几个小时后,OOM.虽说有人很快处理好了.但我还是想站在我的角度,对这件事发表一下自己的观点. 内存溢出,多发生在项目上线后,而且在系 ...

  4. [置顶] Java Web学习总结(25)——MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    这次换了台电脑,所以需要重新配置一次项目开发环境,过程中的种种,记录下来,便于以后再次安装,同时给大家一个参考. 1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64 ...

  5. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

  6. hdu4288 Coder(线段树单点更新)

    题意:支持增删,查操作,最后的序列式递增的. 做法:主要是如何维护mod5的sum值,这里左儿子可以不用管,关键是右儿子的处理,可以假设右儿子有t个节点,左儿子有cnt个节点, 则令(t+cnt)MO ...

  7. noip模拟赛 兔子

    [问题描述]在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝.更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连.换句话讲,这些兔子窝 ...

  8. nyoj_127_星际之门(一)_201403282033

    星际之门(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门 ...

  9. event loop js事件循环 microtask macrotask

    转: 原文 http://blog.csdn.net/sjn0503/article/details/76087631 ---------------------------------------- ...

  10. Java - this的使用方法

    this在内部获得当前对象的引用时调用: (1) return返回当前对象; (2) 构造器调用还有一个构造器, 带參数; (3) 參数的名称和数据成员的名称同样; 注意: this构造器在方法中仅仅 ...