2011-07-05 14 views

Odpowiedz

5

Jak stwierdzono w language definition,

\ <nowalinia> białe znaki

Postać pojedyncza przestrzeń Zamiast ukośnika, nowej linii i wszystkie spacje i tabulatory po nowej linii. Ta sekwencja odwrotnego ukośnika jest unikatowa, ponieważ jest wymieniana w oddzielnym wstępnym przed rzeczywistym przetworzeniem polecenia. Oznacza to, że zostanie on zastąpiony, nawet jeśli wystąpi między nawiasami klamrowymi, a wynikowa przestrzeń będzie traktowana jako separator słów, jeśli nie jest w nawiasach klamrowych lub cudzysłowach.

Oznacza to, że próbka:

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

jest dokładnie odpowiednik tego (uwaga odstępów):

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

Biorąc pod uwagę, że będzie to nieprawidłowe wezwanie normalne polecenie proc, podejrzewam, że nieco przycinałeś swój przykładowy kod. :-)

5

Odwrotny ukośnik \ na końcu wiersza w Tcl oznacza kontynuację wiersza . Twoje oświadczenie jest dokładnie takie samo, jak:

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

z tym, że jest podzielone na więcej niż jedną linię źródłową.

+2

Musisz uważać, aby ukośnik odwrotny był ostatnią postacią na linii. Zostałem ugryziony w przeszłości, gdzie jest po nim przestrzeń, która neguje specjalność backslash-newline. Pomocne może być użycie edytora, który może podkreślać koniec linii. –

+0

Technicznie, jest taki sam jak {c d e f}. Zwróć uwagę na dwie spacje między znakami. Odwrotny ukośnik usuwa znak nowej linii i wszelkie następne spacje w jedną spację. Ponieważ przed lewym ukośnikiem było spacja, kończyłeś z dwoma miejscami. – RHSeeger