TCL 过程proc
文章目录
- 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相关推荐
- 初识Tcl(十):Tcl 过程
程序是什么,只不过代码块的一系列命令,提供了一个可重复使用的特定功能.它被用于避免相同的代码被重复在多个位置.程序相当于许多编程语言中使用的功能,并提供Tcl proc命令的帮助. 创建一个简单程序的 ...
- 描述性统计过程PROC MEANS 和PROC FREQ
目录 一.数值型描述性统计:PROC MEANS 1.基本格式: 2.options: 3.statistic-keywords: 3.语句 BY: CLASS VAR OUTPUT语句 二.字符 ...
- sas univariate 结果解释_SAS:SAS 常用过程之 统计描述过程proc univariate
from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...
- SAS:SAS 常用过程之 统计描述过程proc univariate
from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...
- 汇编 过程 创建并测试 proc endp call ret uses
过程 堆栈操作 LIFO 运行时堆栈 入栈操作 高地址向低地址 出栈操作 低地址高低地址 堆栈作用 临时保存寄存器, 被修改后可恢复 执行call时,保存返回地址 参数压入堆栈进行传递 临时存储局部变 ...
- tcl把文本产生html,TCL脚本数据文件格式(译文)
TCL脚本数据文件格式 简介 一个典型的tcl脚本把它的内部数据保存在列表和数组(tcl中两种主要的数据结构)中.比如,假定你想写一个能将数据先保存在磁盘上,然后再读取的tcl应用程序, 这将使你的用 ...
- 第一部分:TCL基本知识
一.简介 Tcl 表示工具命令语言(Tool Command Language),它是一种流行的脚本编制语言,最初由加州大学伯克利分校的 John Ousterhout 教授开发.John Ouste ...
- EDA实验课课程笔记(四)——TCL脚本语言的学习2
EDA实验课课程笔记(四)--TCL脚本语言的学习2 控制流 if 循环命令 while for foreach break和continue命令 switch source 过程(procedure ...
- tcl/tk参考——tcl内建命令
TCL内建命令 命令更新中,有链接的命令可以直接点击查看 字符串操作 append - 在变量后添加变量 binary - 从二进制字符串中插入或释放数值 format - 使用sprintf的风格格 ...
最新文章
- SmartFoxServer 2X 笔记一:login request (转)
- Leetcode-探索 | 加一
- 大数据Java基础第十九天作业
- linux 备份mbr,MBR的备份与恢复
- JAVA——TCP连接中Socket的正确关闭方式
- 那些我曾经犯过的低级编程错误
- fiddler怎么修改服务器返回数据,基于Fiddler实现修改接口返回数据进行测试
- JavaScript版MD5应用
- visio画图复制粘贴到word_visio复制粘贴到word中
- 在互联网上,没有人知道你是一条狗?
- linux命令行启动新终端,12个让您震撼的Linux终端命令
- httpclient3与httpclient4访问的一些区别
- 共享计算机用户帐户限制怎么办,系统之家Win7系统无法共享提示用户账户限制怎么办...
- besiege机器人_《围攻》双脚机器人制作图文教程 双脚机器人怎么制作
- android耗电怎么解决方法,Android手机媒体进程耗电严重怎么办
- glassfish简单介绍
- 添加友情链接获取CF币
- ***.ps1 cannot be loaded because running scripts is disabled on this system. ------vscode编写python遇到
- Python数据科学学习笔记之——机器学习专题
- java调用ant_从java调用ant,然后在ant终止后返回到java