2016-10-13 4 views
1

Я хочу централизовать выполнение различных методов, вызвав их из одного метода, как основной метод в java .. есть ли способ сделать это в tcl?Создать основной метод в tcl?

Я искал всюду для ответа, но пока не повезло. Другой способ сделать это - установить флаги внутри функций, поэтому блок кода выполняется только тогда, когда флаг имеет определенное значение, но это утомительный процесс, поскольку в моей программе много процедур.

Любая помощь очень ценится. Благодаря

Пример (псевдо-код):

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

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

ответ

2

Tcl можно рассматривать как язык сценариев. Основным методом является тело сценария Tcl. Таким образом, вам не нужен основной метод. Вызов процедуры из процедур является стандартной функциональностью:

proc func1 {} { 
    puts A 
} 

proc func2 {} { 
    puts B 
} 

proc Main {} { 
    func1 
    func2 
} 

Main 

A 
B 

Main должен вызываться явно для того, чтобы func1 и func2 быть выполнены.

Просто поставив Main содержимое в script body дает тот же результат

+0

Я стараюсь использовать эту стратегию самостоятельно. Либо передайте '$ argv' в Main, как продемонстрировал Donal, либо добавьте' global argc argv' в начало Main proc. –

2

Один из способов сделать что-то main -like является использование приложения лямбда. Если вы это делаете, часто бывает полезно передать аргументы сценария.

# 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 
Смежные вопросы