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应用 (带默认参数)相关推荐

  1. (66)TCL脚本命令【incr(两个参数)】

    (66)TCL脚本命令[incr(两个参数)] 1 目录 1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令[incr(两个参数 ...

  2. boost::gil模块实现带默认参数的框过滤器的测试程序

    boost::gil模块实现带默认参数的框过滤器的测试程序 实现功能 C++实现代码 实现功能 boost::gil模块实现带默认参数的框过滤器的测试程序 C++实现代码 #include <b ...

  3. c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

    (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数 ...

  4. c语言支持默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

    描述 (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() ...

  5. TCL脚本学习(过程与文件读写)

    文章目录 过程 全局变量和局部变量 可变参数 递归调用 文件读写操作 文件写举例 文件读举例 过程 在TCL脚本中,过程相当于C语言中的函数,将一系列命令进行重复使用的接口.其语法格式如下: proc ...

  6. tcl脚本学习-基础语法

    本文参考公众号 数字IC与硬件设计的两居室 文章目录 tcl介绍 语法学习 tcl介绍 复杂文本处理 Tcl可以把文本中的每一行变为一个列表,最简单的列表就是包含由任意个空格.制表符.换行符分隔开的任 ...

  7. Python学习:定义函数的默认参数和可变参数

    一.默认参数 定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') ...

  8. 【C++ grammar】重载、内联、变量作用域、带默认参数的函数

    目录 1.变量的作用域 1. 变量的作用域分类 2. Unary Scope Resolution (一元作用域解析运算符) 2.重载函数 3.带有默认参数值的函数 4.重载函数 VS 带有默认参数值 ...

  9. axios 设置拦截器 全局设置带默认参数(发送 token 等)

    应用场景: 1,每个请求都带上的参数,比如token,时间戳等. 2,对返回的状态进行判断,比如token是否过期 代码如下: [javascript] view plain copy axios.i ...

最新文章

  1. linux curl 命令 http请求、下载文件、ftp上传下载
  2. HashMap的遍历方法
  3. 20172304 结对编程--四则运算实验总结
  4. LinQ中Skip()方法和Take()方法的使用
  5. 英语语法---不定式短语详解
  6. form select multiple 某个字段是数组_Hive取非Group by字段数据的方法
  7. 基于CAD/CAM的三维控件
  8. 创业-程序员独自5大思维障碍
  9. Spark-Streaming基础
  10. 返回一个循环数组中最大子数组的和
  11. dump排查内存异常 java_如何排查Java应用内存泄漏问题
  12. Spring_Hibernate
  13. mybatis plus 动态创建表和字段_mybatis-plus maven代码生成器
  14. rocketmq问题记录
  15. head禁用页面缓存
  16. 使用 Transmission 制作种子命令
  17. redhat红帽操作系统下载
  18. 5.16 BScroll页面切换滑动失效,点击事件冒泡(未绑定click也会监听click),transition-group动画特例,BScroll未激活不允许任何事件调用,类的实例和对象
  19. Tomcat9 配置HTTPS连接
  20. 华为鸿蒙系统有广告吗,系统特权?华为鸿蒙被曝看视频能免广告,没正式发布就出bug...

热门文章

  1. 跨域问题解决方案--Nginx代理转发
  2. 面试必问:CPU 占用高,如何一击即中!
  3. Linux 还能这么玩,10 个非常有趣的命令!
  4. 《Flowable基础二 Flowable是什么》
  5. springboot 定制个性 banner
  6. IntelliJ IDEA配置maven,并创建一个实例作为演示
  7. list排序方法python_python list 排序的两种方法及实例讲解
  8. java多图片上传json_SpringMVC框架五:图片上传与JSON交互
  9. 空间刚架matlab_Matlab绘制空间几何图
  10. notepad 没有plugin manager_自学英语的几个网站(免费网站)?性价比高的机构有没有?...