Понимание использования брекетов - PullRequest
18 голосов
/ 03 февраля 2010

Я изучаю Tcl / Tk и запутался в использовании фигурных скобок в tcl.

Мне кажется, что он используется как для обозначения области видимости, так и для объявления строк! Это ошибка (или функция)?

Правильно ли мое толкование?

Ответы [ 4 ]

27 голосов
/ 03 февраля 2010

В двух словах,

  • Скобки Tcl действуют как одиночные кавычки sh - групповые слова (и строки) без интерполяции.
  • Двойные кавычки Tcl действуют как двойные кавычки sh -разрешение интерполяции.

Тот факт, что вы используете фигурные скобки в определении proc, не является обязательным.Это просто наиболее удобный способ передать скрипт в качестве аргумента для 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.

5 голосов
/ 15 ноября 2017

В ответ на комментарий Тоддиуса Жо я видел несколько вопросов (и они у меня были сами), почему фигурные скобки используются при использовании переменных, например $ {Вар}

В 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

0 голосов
/ 12 февраля 2010

man n Tcl

Это страница руководства для интерпретатора Tcl! Прочитайте это. Прочитайте это снова! Вы можете даже пойти в тихое место и прочитать его вслух. Это помешает вам читать слишком быстро. Каждая буква имеет значение.

Как только вы окажетесь в "цитате ада", вернитесь к этому документу и прочитайте его снова.

Онлайн-версия доступна по адресу: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm

0 голосов
/ 03 февраля 2010

фигурные скобки группируют слова вместе, чтобы стать аргументами. Вы можете найти множество вещей Tcl в Интернете, прибегая к помощи. Вот вступление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...