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. chrome://plugins 无法打开的解决方法,同时解决“该网页已屏蔽插件-adobe flash player”

    chrome打开想要看视频时提示该网页已屏蔽插件-adobe flash player,在网上查了半天说在chrome plugins里面打开就可以了.可是chrome://plugins 无法打开, ...

  2. ebay 如何获取用户token

    1. 首先 配置环境加载依赖的ebay SDK 下载地址 https://go.developer.ebay.com/ebay-sdks 需要在本地仓库安装下面的jar mvn install:ins ...

  3. 负载均衡之Ocelot+Consul(WebAPI注册服务)

    上一篇   负载均衡之Ocelot+Consul(文件配置注册服务),介绍了如何通过json文件注册服务,本篇将学习如何通过web api 注册服务. 在展开学习过程之前,且先总结一下 consul服 ...

  4. Jboss 服务器SSL证书安装指南

    1.获取服务器证书 将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----” ...

  5. JavaScript学习总结(12)——2016 年 7 个顶级 JavaScript 框架

    当涉及到Web开发时,JavaScript框架往往是一些开发人员和企业最受欢迎的平台.可能,你有机会尝试过一两个顶级的JavaScript框架,但你仍然有点不确定哪个才是最佳的最值得掌握的,或者哪个值 ...

  6. leetcode 19.删除链表的第n个节点

    删除链表的第n个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第 ...

  7. C#装饰模式

    using System;using System.Collections.Generic;using System.Text; namespace 装饰模式{    class Person    ...

  8. vue2源码浏览分析01

    1.构造函数  Vue$3 function Vue$3 (options) { if ("development" !== 'production' && !(t ...

  9. DELPHI7加载UNICODE编码格式的TXT显示为乱码的解决方法

    DELPHI7的STRING默认是ANSI编码,加载UNICODE编码格式的TXT显示为乱码,解决方法如下: procedure TForm1.Button1Click(Sender: TObject ...

  10. Domino Server installation on Linux (Centos or Redhat) – something somewhere

    something somewhere welcome in there…:) Just another techki site howto / Linux / Lotus Domino 0 Domi ...