Tcl/Tk 中 upvar 函数简介

Upvar 函数类似于C中的传参,形如

  • upvar level otherVar myVar    对于myVar的操作都相当于操作otherVar

作用1 调用someproc函数时,不能直接使用varname。

proc someproc varname {    upvar 1 $varname var        set var 5    }someproc a

作用2 声明一个全局变量,全局变量命名空间的level是0

upvar #0 foo foo  ;# equivalent to: global foo

关于level,就是函数调用的层次

proc test_2 {b} {
puts [info level]
}

proc test_1 {a} {
puts [info level]
test_2 b
}

test_1 a

输出1 和 2 , 分别对应test_1和test_2的层级

此时如果在test_2 中调用0级变量,应该使用upvar 2 $varname var? 关于level讲解后续再做介绍。

时间: 2024-08-26 16:42:35

Tcl/Tk 中 upvar 函数简介的相关文章

SQL中 decode()函数简介

SQL中 decode()函数简介 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的

SQL中 decode()函数简介(转载)

今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where - 其中columnname为要选择的table中所定义的column, ·含义解释: dec

SQL中 decode()函数简介 - FreeSpider - 博客园

body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bo

SQL中的decode()函数简介

decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的column, ·含义解释: decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的理解如下: if (条件==值1) then return

TCL 中upvar 用法 (摘自http://www.cnblogs.com/kane1990/archive/2011/12/19/2293981.html)

可以用 upvar 命令模拟传引用调用的行为,这对数组特别有用.如果a是一个数组,就不能像myproc $a这样把它传给过程myproc,因为并没有 对应整个数组的值:只有对应各个数组元素的值. 但是可以把数组名传给过程,myproc a,然后使用upvar命令在过程中访问数组的元素. 下面是在过程中使用upvar的简单示例,输出一个数组的内容: proc printArray {name} { upvar $name a foreach el [ lsort [ array names a]]

lua中函数简介

在lua中,函数是一种第一类值,它们具有特定的词法域. 第一类值表示在lua中函数与其他传统类型的值具有相同的权利.函数可以存储在变量中,全局变量或者拒不变量或者table中,可以作为实参传递给其他函数,还可以作为其他函数的返回值. 词法域是什么意思呢,这是指一个函数可以嵌套在另一个函数中.内部的函数可以访问外部函数中的变量.接下来就会看到,这项听似平凡的特性将给语言带来极大的能力.因为它允许在Lua中应用各种函数式语言中的强大编程技术. 在lua中有一个容易混淆的概念是,函数与所有其他值一样都

SQL中随机数函数rand()简介

转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手,不妨一看,相信对您学习SQL中的函数会大有帮助. 在SQL Server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬 不过还是希望老鸟们多多指教了,现在切入正题:  随机函数:rand(

Tcl/Tk string详解

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 这里对string命令中的几个子命令使用实例进行一些解释,以便于更加容易理解string命令中的各个子命令,本文仅对几个比较容易掌握的相对简单的string命令进行实例解析.分别是bytelength.length.compare.equal.range.index.first和last几个子命令. 如果对这些命令还不了解,请参考:

MySQL常用字符函数简介

<html> <body> <h1>MySQL常用字符函数简介</h1> <table>     <tr>         <td>CONCAT(S1,S2...Sn)</td>         <td>连接S1,S2...Sn为一个字符串</td>     </tr> </table> <p style="background-color:yel