我想要一个proc,如果它的'参数是一个Tcl 8.5及以上的字典,它会做什么.我从Tcl dict命令中找不到任何直截了当的东西.我可以使用的代码是:
proc dict? {dicty} {
expr { [catch { dict info $dicty } ] ? 0 : 1 }
}
Run Code Online (Sandbox Code Playgroud)
是否有什么不使用catch,内置的东西?
谢谢.
在Ruby或Perl中,可以使用括号分配多个变量.例如(在Ruby中):
(i,j) = [1,2]
(k,m) = foo() #foo returns a two element array
Run Code Online (Sandbox Code Playgroud)
可以用优雅的方式在TCL中完成相同的工作吗?我的意思是我知道你可以这样做:
foreach varname { i j } val { 1 2 } { set $varname $val }
foreach varname { k m } val [ foo ] { set $varname $val }
Run Code Online (Sandbox Code Playgroud)
但我希望有更短的东西/更少的支撑.
我想在 Tcl 中检查输入是否为有效数字。即:
1.2.0 不是。
1.20 是。
1e-9 是
-00.61 是。
1.91e-a0 不是。
我在网上找不到好的答案。
假设我有这个 TCL 代码(这是一个简单的例子):
proc foo {} {
set k {0}
foreach a { 1 2 3 4 } {
lappend k [ expr { [lindex $k end ] + $a } ]
}
}
Run Code Online (Sandbox Code Playgroud)
我想跟踪 proc foo 中的 k 变量,就像我跟踪它一样,如果它是全局变量或命名空间变量。在 TCL 8.5 中,我该怎么做?
谢谢。
说我有一个功能:
def foo()
puts getFunctionIAMIn()
end
Run Code Online (Sandbox Code Playgroud)
我希望输出为:"foo"如果我有这个代码:
def foo1()
puts getFunctionIAMIn()
end
Run Code Online (Sandbox Code Playgroud)
我希望输出为:"foo1"
当n是数组大小时,在Ruby中插入数组的预期数量级是多少?
谢谢
让我们说我有一个命名空间。我想找到所有的命名空间过程。例如,假设我有以下代码:
namespace eval foo {
proc me {} { puts "yey!" }
proc moo {} { puts "ney!" }
}
puts [ getAllNamespaceProcs foo ] ; # getAllNamespaceProcs is what I do not know how to do
Run Code Online (Sandbox Code Playgroud)
这应该产生:
> { me moo }
Run Code Online (Sandbox Code Playgroud)
谢谢。
我试图定义并调用一个函数new:
module Me
class Bobkat
def new()
puts "Kernel.caller()[0].to_s() is " << Kernel.caller()[0].to_s()
initialize()
end
def initialize
return self
end
end
end
Me::Bobkat.new()
Run Code Online (Sandbox Code Playgroud)
它忽略了puts命令.我想知道它为什么这样做.有任何想法吗?
tcl ×5
ruby ×3
proc ×2
variables ×2
arrays ×1
catch-block ×1
class ×1
dictionary ×1
function ×1
namespaces ×1
numbers ×1
trace ×1