文章目录

  • pro的基本概念结构
  • 局部变量和全局变量:
  • TCL中的特殊参数形式;
    • 没有任何参数的过程, 或者缺省参数
    • 可变个数的参数

本篇文章介绍的是proc这个概念,称之为过程,实现的效果相当于你创建了一个TCL的命令一样,非常类似于C语言中的函数。

pro的基本概念结构

proc add {x y} {expr $x+ $y}

如上面code所示, add作为的是这个过程的名字,xy是过程的参数列表,参数之间要用空格隔开,接着用花括号{ } 代表过程体。proc从而生成了一个新的cmd,可以像cmd一样来调用他。注意有两个花括号,第一个是传递参数变量,第二个是proc的实体。

局部变量和全局变量:

在所有过程之外定义的变量称之为全局变量,而在proc内部定义的变量我们称之为局部变量,二者可以同名。全局变量的作用域是它所在的过程的内部,全局变量的作用域则不包括所有过程的内部,这里和C很不一样。用现实生活举一个例子,就相当于一个国家里面又有一个国家,相当于国中国一样,你不管我,我不管你。

如果在proc,也就是局部里面想要调用一下全局的变量的值,就在局部前面声明为global,好比要在里面的小国家借用大国家的东西,就需要在自己小国家,声明这个变量是全局的,所有国民都可以用。

TCL中的特殊参数形式;

没有任何参数的过程, 或者缺省参数

proc add {} {expr 2+3}

上面,我就不提供任何参数,当我敲击add的时候就直接返回5

或者说我们可以设置一个default值

如上图所示,var2的默认值是2,var3的默认值是3 var1没有设置默认值

可变个数的参数


上图包含的知识比较多,一个是proc的用法,以及args的用法,另外还有foreach的用法。
args就是一个关键词变量,代表一个list,但是这个list里面的东西我不知道,反正就是一个可变的list类型的变量值。
因此
定义一个过程叫add的过程,然后,参数有va1 和一个list参数,具体有多少个,我不知道。以后看到args就应该知道这个是一个可变的list变量。
然后set 局部变量sum等价于val1
开始执行foreach,变量为i,每次i从args这个list变量里面取一个值,就执行一下body的执行体,将args里面的值赋值给sum变量,最后返回最终的sum
然后自己推一下,就知道上面为什么等于2和20了。
感谢,参考:https://www.cnblogs.com/chip/p/5866689.html

TCL 过程proc相关推荐

  1. 初识Tcl(十):Tcl 过程

    程序是什么,只不过代码块的一系列命令,提供了一个可重复使用的特定功能.它被用于避免相同的代码被重复在多个位置.程序相当于许多编程语言中使用的功能,并提供Tcl proc命令的帮助. 创建一个简单程序的 ...

  2. 描述性统计过程PROC MEANS 和PROC FREQ

    目录 一.数值型描述性统计:PROC MEANS 1.基本格式: 2.options: 3.statistic-keywords: 3.语句 BY: CLASS ​VAR ​OUTPUT语句 二.字符 ...

  3. sas univariate 结果解释_SAS:SAS 常用过程之 统计描述过程proc univariate

    from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...

  4. SAS:SAS 常用过程之 统计描述过程proc univariate

    from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...

  5. 汇编 过程 创建并测试 proc endp call ret uses

    过程 堆栈操作 LIFO 运行时堆栈 入栈操作 高地址向低地址 出栈操作 低地址高低地址 堆栈作用 临时保存寄存器, 被修改后可恢复 执行call时,保存返回地址 参数压入堆栈进行传递 临时存储局部变 ...

  6. tcl把文本产生html,TCL脚本数据文件格式(译文)

    TCL脚本数据文件格式 简介 一个典型的tcl脚本把它的内部数据保存在列表和数组(tcl中两种主要的数据结构)中.比如,假定你想写一个能将数据先保存在磁盘上,然后再读取的tcl应用程序, 这将使你的用 ...

  7. 第一部分:TCL基本知识

    一.简介 Tcl 表示工具命令语言(Tool Command Language),它是一种流行的脚本编制语言,最初由加州大学伯克利分校的 John Ousterhout 教授开发.John Ouste ...

  8. EDA实验课课程笔记(四)——TCL脚本语言的学习2

    EDA实验课课程笔记(四)--TCL脚本语言的学习2 控制流 if 循环命令 while for foreach break和continue命令 switch source 过程(procedure ...

  9. tcl/tk参考——tcl内建命令

    TCL内建命令 命令更新中,有链接的命令可以直接点击查看 字符串操作 append - 在变量后添加变量 binary - 从二进制字符串中插入或释放数值 format - 使用sprintf的风格格 ...

最新文章

  1. SmartFoxServer 2X 笔记一:login request (转)
  2. Leetcode-探索 | 加一
  3. 大数据Java基础第十九天作业
  4. linux 备份mbr,MBR的备份与恢复
  5. JAVA——TCP连接中Socket的正确关闭方式
  6. 那些我曾经犯过的低级编程错误
  7. fiddler怎么修改服务器返回数据,基于Fiddler实现修改接口返回数据进行测试
  8. JavaScript版MD5应用
  9. visio画图复制粘贴到word_visio复制粘贴到word中
  10. 在互联网上,没有人知道你是一条狗?
  11. linux命令行启动新终端,12个让您震撼的Linux终端命令
  12. httpclient3与httpclient4访问的一些区别
  13. 共享计算机用户帐户限制怎么办,系统之家Win7系统无法共享提示用户账户限制怎么办...
  14. besiege机器人_《围攻》双脚机器人制作图文教程 双脚机器人怎么制作
  15. android耗电怎么解决方法,Android手机媒体进程耗电严重怎么办
  16. glassfish简单介绍
  17. 添加友情链接获取CF币
  18. ***.ps1 cannot be loaded because running scripts is disabled on this system. ------vscode编写python遇到
  19. Python数据科学学习笔记之——机器学习专题
  20. java调用ant_从java调用ant,然后在ant终止后返回到java

热门文章

  1. HDU 1221: Cube
  2. [读书笔记]高阶函数
  3. [Java] grails 安装手记
  4. UA OPTI570 量子力学17 创生算符与湮灭算符
  5. UA MATH523A 实分析2 测度论基础2 集族与单调类
  6. UA MATH566 统计理论 QE练习题1
  7. VC++实现Turbo码
  8. C语言getch()函数学习
  9. Bing Maps Geographic Coverage - Bing地图图像覆盖范围
  10. Bing Maps 开发入门 - 1