首页IT科技tcl如何安装u盘上的软件([ Tcl ] 如何实现类似 Perl 中 shift 函数的效果)

tcl如何安装u盘上的软件([ Tcl ] 如何实现类似 Perl 中 shift 函数的效果)

时间2025-06-20 14:11:13分类IT科技浏览4533
导读:https://www.cnblogs.com/yeungchie/...

https://www.cnblogs.com/yeungchie/

函数功能

Perl 中 shift 函数可以返回列表的第一个元素            ,并将后续所有元素向前移位( 索引值减 1 )            。输入可选                  ,默认为 @_ 或者 @ARGV                  。

my @foo = qw( 1 2 3 4 ); say shift @foo; # 1 say @foo; # 234

在某些版本的 Tcl 中函数 lshift 可以实现类似效果      ,或者使用 struct::list 包:

package require struct::list set foo { 1 2 3 4 } puts [::struct::list shift foo] # 1 puts $foo # 2 3 4

但某些 EDA 工具中内置的 Tcl 版本较旧         ,或者做了精简                  ,无法使用上面提到的方法         ,所以下面自己来实现一下      。

Tcl 实现

proc shift { sym } { upvar 1 $sym foo if { ! [info exists foo] } { error "cant read \"$sym\": no such variable" } set foo [lassign $foo[unset foo] var0] return $var0 }

测试

列表迭代

set a {3 1 2 5 4} # 3 1 2 5 4 shift a # 3 shift a # 1 puts $a # 2 5 4

循环中应用

set a {1 2 {} 4 {}} # 1 2 {} 4 {} while { [llength $a] } { puts [shift a] } # 1 # 2 # # 4 #

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python什么叫序列(一文了解Python序列化)