Mam pytanie o „\” w TCLCo oznacza ukośnik odwrotny w TCL?
widzę kawałek kodu w następujący sposób:
proc ::A::B {c \
d \
e \
f
}
co to „\” oznacza w liście parametrów?
Czy ktoś może mi pomóc w tej sprawie?
Mam pytanie o „\” w TCLCo oznacza ukośnik odwrotny w TCL?
widzę kawałek kodu w następujący sposób:
proc ::A::B {c \
d \
e \
f
}
co to „\” oznacza w liście parametrów?
Czy ktoś może mi pomóc w tej sprawie?
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. :-)
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ą.
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. –
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