如何理解在TCL中何时使用$sign with list命令?

如何理解在TCL中何时使用$sign with list命令?,list,function,scripting,command,tcl,List,Function,Scripting,Command,Tcl,这里我们有3个命令:lindex、lappend和length 如果我想使用它们,我需要在lindex和llength中使用$sign,但我不需要在lappend中使用它 请查看以下代码: set list_name {1 2 3 4 5} puts [lindex $list_name 1] lappend list1 6 puts [llength $list_name] 我如何理解在哪个命令之后我需要在变量名中使用$符号,以及何时我不需要使用它?一般规则是,如果Tcl正在读取变量的值,请

这里我们有3个命令:lindex、lappend和length

如果我想使用它们,我需要在lindex和llength中使用$sign,但我不需要在lappend中使用它

请查看以下代码:

set list_name {1 2 3 4 5}
puts [lindex $list_name 1]
lappend list1 6
puts [llength $list_name]

我如何理解在哪个命令之后我需要在变量名中使用$符号,以及何时我不需要使用它?

一般规则是,如果Tcl正在读取变量的值,请使用$。 修改现有变量时,不使用$,而是使用变量名

lappend直接修改它的参数,因此它采用一个变量名。 lindex正在某个索引处读取列表的值,因此 使用该列表。 llength是读取列表的值,因此 使用列表中的。 这三点实际上相当简单。我发现lreplace最难记住。lreplace返回一个新列表,不修改作为参数给出的列表。它接受列表的值作为参数

直接修改列表:

拉彭德 伦敦证券交易所 使用列表的值:

林指数 长度 替代 lmap L范围 lreverse 线性搜索 斯波特
一般规则是,如果Tcl正在读取变量的值,则使用$。 修改现有变量时,不使用$,而是使用变量名

lappend直接修改它的参数,因此它采用一个变量名。 lindex正在某个索引处读取列表的值,因此 使用该列表。 llength是读取列表的值,因此 使用列表中的。 这三点实际上相当简单。我发现lreplace最难记住。lreplace返回一个新列表,不修改作为参数给出的列表。它接受列表的值作为参数

直接修改列表:

拉彭德 伦敦证券交易所 使用列表的值:

林指数 长度 替代 lmap L范围 lreverse 线性搜索 斯波特
中的约定之一是对采用变量名的对象使用varName或typeVariable并修改变量的内容,对采用该类型值的对象使用typeValue或type,如list、string、dictionaryValue。后一种情况是使用$foo传递变量的内容。第一种情况是当您使用foo时,当然,除非您要使用的变量的名称本身在变量中


如果您正在使用tcl,您还必须熟悉,以了解$的含义以及在一般规则8中如何使用。

中的约定之一是使用varName或typeVariable处理采用变量名的内容,并修改变量的内容,以及typeValue或类似list、string等类型,字典值用于接受该类型值的对象。后一种情况是使用$foo传递变量的内容。第一种情况是当您使用foo时,当然,除非您要使用的变量的名称本身在变量中


如果您使用的是tcl,您还必须熟悉,要知道$的含义以及如何在一般规则8中使用。

恐怕最好的答案是:阅读文档=>-注意示例我恐怕最好的答案是:阅读文档=>-注意示例reach是另一个使用列表值的命令。foreach是另一个使用列表值的命令。