gpt4 book ai didi

tcl - Tcl 中是否有简写来获取连续的数字数组?

转载 作者:行者123 更新时间:2023-12-04 22:22:25 28 4
gpt4 key购买 nike

例如,在 Perl 中,要获取从 1 到 10 的连续数字数组,您可以简单地执行以下操作:

@myArray = (1 .. 10);

这两个句点用作此操作的简写,而不是制作 for 循环或手动写出整个内容。我使用的其他语言也有类似的东西。

Tcl 中是否存在类似的速记?

最佳答案

你可以定义方法:

proc fillArray {a b} {
eval return \[list $a [string repeat "\[incr a\] " [incr b -$a]]\]
}

并将其用作:

set myArray [fillArray 1 10]

您甚至可以美化过程的调用,使其看起来像在 perl 中。为此,只需重新定义 unknown 过程:

rename unknown __unknown
proc unknown {args} {
if {[llength $args] == 3} {
lassign $args a op b
if {[string is integer $a] && $op == ".." && [string is integer $b]} {
return [fillArray $a $b]
}
}
return [uplevel __unknown {*}$args]
}

之后你可以简单的写成:

set myArray [1 .. 10]

:)

关于tcl - Tcl 中是否有简写来获取连续的数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6926407/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com