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. 59.关系型与document类型数据模型对比

    现假设有如下两个类: class Department(object): def __init__(self, dept_id, name, desc, employees=[]): self.dep ...

  2. Yii 时间日期组件与composer 下载中出现的问题

    首先本篇主要讲3点 一个Yii时间日期组件的两种用法 笔者使用composer下载该组件时出现问题的解决办法 1.composer下载出现的问题 file could not be downloade ...

  3. HYSBZ - 1050(旅行comf 并查集Java实现)

    HYSBZ - 1050(旅行comf Java实现) 原题地址 解法:枚举每一条边,对于这条边,我们需要找到集合中和其值相差最小的最大边,这个集合是指与包括i边在内的ST联通集.对于这一要求,我们只 ...

  4. clipboard.js兼容ios

    再使用clipboard.js做项目时,项目需求是在非input,button等可以点击的标签(span,p,div)上实现点击来复制内容,在PC端和移动端android没问题,但是到了ios毫无反应 ...

  5. vue 刷新当前页面的时候重新调用新的cookie

    data() { return{ AdminToken: this.getCookie('token'), } }, updated() { //刷新当前页面的时候重新调用新的cookie this. ...

  6. Ajax_数据格式_XML

    [XML] 优点: --XML是一种通用的数据格式. --不必把数据强加到已经定义好的格式中,而是要为数据自定义合适的标记. --利用DOM可以完全掌控文档. 缺点: --如果文档来自于服务器,就必须 ...

  7. [K/3Cloud]如何解决K3Cloud 2.0审批流提交时报“队列不存在,或您没有足够的权限执行该操……

    按照图上的操作即可解决不可提交的问题,但如果应用服务器是部署在域环境下,应该不会出错,这是微软support上说的

  8. 算(tyvjP4700)

    背景 zhx和他的妹子出去玩. 描述

  9. 深刻理解Python中的元类(metaclass)--代码实践

    根据http://blog.jobbole.com/21351/所作的代码实践. 这篇讲得不错,但以我现在的水平,用到的机会是很少的啦... #coding=utf-8 class ObjectCre ...

  10. [bzoj1612][Usaco2008 Jan]Cow Contest奶牛的比赛_dfs

    Cow Contest奶牛的比赛 bzoj-1612 Usaco-2008 Jan 题目大意:题目链接. 注释:略. 想法: 我们对于每个点dfs,看一下比这个点大的点加上比这个点小的点是否是n-1即 ...