【问题标题】:Create a main method in tcl?在 tcl 中创建一个主要方法?
【发布时间】:2016-10-13 22:52:46
【问题描述】:

我想通过从单个方法调用各种方法来集中执行它们,就像 java 中的 main 方法一样。在 tcl 中有没有办法做到这一点?

我到处寻找答案,但到目前为止还没有运气。另一种解决方法是在函数中设置标志,以便代码块仅在标志具有特定值时执行,但这是一个乏味的过程,因为我的程序中有很多过程。

非常感谢任何帮助。谢谢

示例(伪代码):

func1 () {...}
func2 () {...}

main method () {
  int a, b
  func1(a)
  func2(b)
}

【问题讨论】:

    标签: scripting tcl main tk


    【解决方案1】:

    Tcl 可以看作是一种脚本语言。 Tcl 脚本的主体是主要方法。因此,您实际上并不需要 main 方法。从过程调用过程是标准功能:

    proc func1 {} {
        puts A
    }
    
    proc func2  {} {
        puts B
    }
    
    proc Main {} {
        func1
        func2
    }
    
    Main
    

    A
    B
    

    必须显式调用Main 才能执行func1func2

    Main 的内容放入script body 会产生相同的结果

    【讨论】:

    • 我自己倾向于使用这种策略。将 $argv 传递给 Main,如 Donal 所示,或者将 global argc argv 添加到 Main proc 的顶部。
    【解决方案2】:

    做某事main-like 的一种方法是使用 lambda 应用程序。如果您这样做,传递脚本参数通常会很有帮助。

    # Usual stuff at the top of a script
    pacakge require Tcl 8.5
    package require pkgABC
    package require pkgDEF
    
    proc GHI {} { ... }
    
    apply {{a b args} {
        # This part now works like main() in C or Java or ...
    }} {*}$argv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多