2011-07-05 2 views

ответ

5

Как указано в language definition,

\ < новой строки > пробельных

Один символ пробела заменяет обратной косой черты, символ новой строки и все пробелы и знаки табуляции после перевода строки. Эта обратная косая черта уникальна тем, что она заменяется отдельным профайлом до того, как команда фактически разбирается. Это означает, что он будет заменен даже тогда, когда он возникает между фигурными скобками, и результирующее пространство будет рассматриваться как разделитель слов, если оно не находится в фигурных скобках или кавычках.

Это означает, что образец:

proc ::A::B {c \ 
      d \ 
      e \ 
      f 
} 

является точно эквивалентно (обратите внимание на расстояние):

proc ::A::B {c d e f 
} 

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

5

Обратная косая черта \ в конце строки в Tcl указывает Продолжение строки. Таким образом, ваше заявление точно так же, как:

proc ::A::B {c d e f} 

исключая его разрыв по нескольким линиям источника.

+2

Вы должны быть осторожны, чтобы обратная косая черта была последним символом на линии. Я был укушен в прошлом, где после него есть пробел, что отрицает особую черту обратной косой черты. Полезно использовать редактор, который может использовать endline of lineline. –

+0

Технически это то же самое, что {c d e f}. Обратите внимание на два пробела между символами. Обратная косая черта пропускает новую строку плюс любые пробелы в одном пространстве. Поскольку перед обратным слэшем было пространство, вы заканчиваете с двумя пробелами. – RHSeeger

Смежные вопросы