tcl / itcl-在带有两个参数的args输入列表上进行foreach迭代

时间:2018-08-02 11:47:36

标签: tcl itcl

我编写了以下代码,该代码应在args输入列表上进行迭代,每次迭代均读取两个参数。问题是我写的方式不起作用。我查看了Tcl / Tk Wikipedia网页,但找不到任何有用的建议。我可以用我写的方式来做(不将其转换为数组)吗?

itcl::body class::config {args} {
if {[llength $args] > 1} {
    foreach {option value} in $args {
        if {[string length $option] == 0 || [string length $value] == 0} {
            puts "Runtime error::Bad Input: option flag or value is missing"
            return
        }
        switch --$option {
            -a { 
                if { [string is integer $value -strict] } {
                    #do something
                }
            }
            -b { 
                    if { [string is integer $value -strict] } {
                    #do something
                }
            }
        }
return }

2 个答案:

答案 0 :(得分:4)

拖放select * from users where username = 'value_from_the_username_field' AND password = 'md5(value_from_the_pass_field)' ,您只需要:

in

请参阅https://www.tcl.tk/man/tcl/TclCmd/foreach.htm上的文档

答案 1 :(得分:0)

一些提示。 代替:

[string length $option] == 0

您也可以写:

$option == ""

在这种情况下,-strict选项是多余的,因为您已经跳过了空字符串。此外,您应该将选项放在“是整数”之后:

string is integer -strict $value