小编use*_*991的帖子

在Tcl中检查参数是否是字典

我想要一个proc,如果它的'参数是一个Tcl 8.5及以上的字典,它会做什么.我从Tcl dict命令中找不到任何直截了当的东西.我可以使用的代码是:

proc dict? {dicty} { 
    expr { [catch { dict info $dicty } ] ? 0 : 1 }
}
Run Code Online (Sandbox Code Playgroud)

是否有什么不使用catch,内置的东西?
谢谢.

dictionary tcl catch-block

1
推荐指数
1
解决办法
1504
查看次数

TCL多重赋值(如Perl或Ruby)

在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)

但我希望有更短的东西/更少的支撑.

variables tcl variable-assignment

1
推荐指数
1
解决办法
130
查看次数

如何判断变量值是否是 TCL 中的数字?

我想在 Tcl 中检查输入是否为有效数字。即:
1.2.0 不是。
1.20 是。
1e-9 是
-00.61 是。
1.91e-a0 不是。
我在网上找不到好的答案。

numbers tcl number-formatting

1
推荐指数
1
解决办法
1613
查看次数

在 proc 的局部变量上使用 TCL 跟踪


假设我有这个 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 中,我该怎么做?
谢谢。

variables trace tcl proc

1
推荐指数
1
解决办法
938
查看次数

从Ruby中获取函数名称

说我有一个功能:

def foo()
puts getFunctionIAMIn()
end
Run Code Online (Sandbox Code Playgroud)

我希望输出为:"foo"如果我有这个代码:

def foo1()
puts getFunctionIAMIn()
end
Run Code Online (Sandbox Code Playgroud)

我希望输出为:"foo1"

ruby function

0
推荐指数
1
解决办法
80
查看次数

insert方法在Ruby Array中的复杂性顺序

当n是数组大小时,在Ruby中插入数组的预期数量级是多少?
谢谢

ruby arrays complexity-theory

0
推荐指数
1
解决办法
476
查看次数

在 Tcl 中查找命名空间的所有过程

让我们说我有一个命名空间。我想找到所有的命名空间过程。例如,假设我有以下代码:

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)

谢谢。

namespaces introspection tcl proc

0
推荐指数
1
解决办法
532
查看次数

在方法`new`中忽略命令

我试图定义并调用一个函数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命令.我想知道它为什么这样做.有任何想法吗?

ruby class

-1
推荐指数
1
解决办法
44
查看次数