tcl脚本学习十一:proc应用 (带默认参数)
lesson 11 : proc应用 (带默认参数)
1.//使用过程的时候,不一定输入所有的参数值。过程的输入参数可以有默认值。默认值由
{默认参数名 默认值}指定。如果调用过程时没有指定这些参数的值则会使用其默认值,
否则使用输入值来替代默认值。在使用默认参数的时候要注意,如果默认参数之后还有
非默认参数,则在调用此过程的时候,默认参数的值也要求输入,否则会出错。这是因
为 Tcl 调用过程的时候是根据位置来匹配参数和输入值的
2.如果参数列表中最后一个参数是 args 的话,则过程可以接收可变数目的输入参数。当调用过
程时,除了指定参数以外的参数值都被 args 接收。如果参数列表中只有 args 一项,则 args 接
收所有输入参数值
example ① :调用函数的返回值的用法
proc Test { a {b 7} {str "Hello world"} } {
puts "$str"
return [expr $a * $b ]
}
puts "[Test 7 7 ] "
example ② :
proc test {args} {
puts "input values are : $args"
}
test my name is zhouli
result : input values are : my name is zhouli
//验证了开头第二点说的
example ③ :
proc config_sys {args} {
array set inArr $args
parray inArr
}
config_sys -sysName "HUB100" -ipAddr 192.168.10.1 -date 2003-11-21 -time 21:03:45
result :
inArr(-date) = 2003-11-21
inArr(-ipAddr) = 192.168.10.1
inArr(-sysName) = HUB100
inArr(-time) = 21:03:45
//先放一放
//进入本课正题!!咳咳
proc example {first {second ""} args} {
if {$second == ""} {
puts "There is only one argument and it is: $first";
return 1;
} else {
if {$args == ""} {
puts "There are two arguments - $first and $second";
return 2;
} else {
puts "There are many arguments - $first and $second and $args";
return "many";
}
}
}
set count1 [example ONE]
set count2 [example ONE TWO]
set count3 [example ONE TWO THREE ]
set count4 [example ONE TWO THREE FOUR]
//例子结合了很多简单用法,不做解释
转载于:https://www.cnblogs.com/gold-life/p/5731140.html
tcl脚本学习十一:proc应用 (带默认参数)相关推荐
- (66)TCL脚本命令【incr(两个参数)】
(66)TCL脚本命令[incr(两个参数)] 1 目录 1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令[incr(两个参数 ...
- boost::gil模块实现带默认参数的框过滤器的测试程序
boost::gil模块实现带默认参数的框过滤器的测试程序 实现功能 C++实现代码 实现功能 boost::gil模块实现带默认参数的框过滤器的测试程序 C++实现代码 #include <b ...
- c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗
(文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数 ...
- c语言支持默认参数吗,嵌入式C语言可以带“默认参数”的函数吗
描述 (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() ...
- TCL脚本学习(过程与文件读写)
文章目录 过程 全局变量和局部变量 可变参数 递归调用 文件读写操作 文件写举例 文件读举例 过程 在TCL脚本中,过程相当于C语言中的函数,将一系列命令进行重复使用的接口.其语法格式如下: proc ...
- tcl脚本学习-基础语法
本文参考公众号 数字IC与硬件设计的两居室 文章目录 tcl介绍 语法学习 tcl介绍 复杂文本处理 Tcl可以把文本中的每一行变为一个列表,最简单的列表就是包含由任意个空格.制表符.换行符分隔开的任 ...
- Python学习:定义函数的默认参数和可变参数
一.默认参数 定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') ...
- 【C++ grammar】重载、内联、变量作用域、带默认参数的函数
目录 1.变量的作用域 1. 变量的作用域分类 2. Unary Scope Resolution (一元作用域解析运算符) 2.重载函数 3.带有默认参数值的函数 4.重载函数 VS 带有默认参数值 ...
- axios 设置拦截器 全局设置带默认参数(发送 token 等)
应用场景: 1,每个请求都带上的参数,比如token,时间戳等. 2,对返回的状态进行判断,比如token是否过期 代码如下: [javascript] view plain copy axios.i ...
最新文章
- linux curl 命令 http请求、下载文件、ftp上传下载
- HashMap的遍历方法
- 20172304 结对编程--四则运算实验总结
- LinQ中Skip()方法和Take()方法的使用
- 英语语法---不定式短语详解
- form select multiple 某个字段是数组_Hive取非Group by字段数据的方法
- 基于CAD/CAM的三维控件
- 创业-程序员独自5大思维障碍
- Spark-Streaming基础
- 返回一个循环数组中最大子数组的和
- dump排查内存异常 java_如何排查Java应用内存泄漏问题
- Spring_Hibernate
- mybatis plus 动态创建表和字段_mybatis-plus maven代码生成器
- rocketmq问题记录
- head禁用页面缓存
- 使用 Transmission 制作种子命令
- redhat红帽操作系统下载
- 5.16 BScroll页面切换滑动失效,点击事件冒泡(未绑定click也会监听click),transition-group动画特例,BScroll未激活不允许任何事件调用,类的实例和对象
- Tomcat9 配置HTTPS连接
- 华为鸿蒙系统有广告吗,系统特权?华为鸿蒙被曝看视频能免广告,没正式发布就出bug...
热门文章
- 跨域问题解决方案--Nginx代理转发
- 面试必问:CPU 占用高,如何一击即中!
- Linux 还能这么玩,10 个非常有趣的命令!
- 《Flowable基础二 Flowable是什么》
- springboot 定制个性 banner
- IntelliJ IDEA配置maven,并创建一个实例作为演示
- list排序方法python_python list 排序的两种方法及实例讲解
- java多图片上传json_SpringMVC框架五:图片上传与JSON交互
- 空间刚架matlab_Matlab绘制空间几何图
- notepad 没有plugin manager_自学英语的几个网站(免费网站)?性价比高的机构有没有?...