Понимание использования фигурных скобок
Я изучаю Tcl/Tk и путаюсь в использовании фигурных скобок в tcl.
Мне кажется, что он используется как для указания области, так и для объявления строк! Это ошибка (или функция)?
Правильно ли моя интерпретация?
Ответы
Ответ 1
В двух словах,
- Tcl скобки действуют как sh одиночные кавычки - слова группы (и строки) без интерполяции.
- Двойные кавычки Tcl действуют как двойные кавычки sh - допускают интерполяцию.
Тот факт, что вы используете фигурные фигурные скобки в определении proc
, не является обязательным. Это самый удобный способ передать script в качестве аргумента для proc без интерполяции.
Это эквивалент
proc add3 {a b c} {
return [expr {$a + $b + $c}]
}
и
proc add3_weird [list a b c] "return \[expr {\[set a] + \[set b] + \[set c]}]"
После интернализации цитирования Tcl вы поймете, насколько может быть действительно гибким Tcl.
Ответ 2
В ответ на комментарий Toddius Zho, я видел несколько вопросов (и имел их сам), почему фигурные скобки используются при использовании переменных, например. ${Вар}
В TCL стандартная скалярная переменная может состоять из любого символа.
Однако оператор переменной замещения "$" предполагает, что вы используете буквенно-цифровые символы и символы подчеркивания (плюс разделители пространств имен "::" )
Итак, если переменная установлена с не буквенно-цифровым символом, например "!", TCL будет ошибочно при попытке заменить эту переменную.
% set myvar! 123
123
% puts $myvar!
can't read "myvar": no such variable
Используя фигурные скобки, оператор подстановки не имеет ошибки:
% set myvar! 123
123
%puts ${myvar!}
123
Это связано с тем, что TCL не выполняет подстановку/интерполяцию на все, что определено в фигурных скобках.
http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm
Ответ 3
фигурные скобки группируют слова вместе, чтобы стать аргументами. вы можете найти множество материалов tcl в Интернете по поисковому запросу. Здесь intro
Ответ 4
man n Tcl
Это страница руководства для интерпретатора Tcl! Прочтите. Прочтите еще раз! Вы даже можете подумать о том, чтобы пойти в тихое место и прочитать его вслух. Это затруднит вам чтение слишком быстро. Каждая буква считается.
Как только вы окажетесь в "цитировании ада", вернитесь к этому документу и прочитайте его снова.
Существует онлайн-версия:
http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm