В Tcl пробел равен пустой строке? - PullRequest
0 голосов
/ 27 июля 2010

Я использую оператор switch для сопоставления некоторых параметров, с которыми могут быть связаны значения VALUES, а может и не иметь их, а затем извлекаю значения (которые, я думаю, могут быть ничем или просто набором пустых строк).

В Tcl это эквивалентно?Т.е. будет ли задний пробел подаваться в качестве опции или анализироваться?Должен ли я "обрезать строку" значение или это не нужно?

**

Ответы [ 2 ]

3 голосов
/ 27 июля 2010

По умолчанию, пробел не обрезается от начала или конца любой строки.Ведь иногда это может быть значительным.Если вы хотите удалить начальные и конечные пробелы, используйте:

set str [string trim $str]

Вы можете просто удалить начальные или конечные пробелы, используя string trimleft и string trimright соответственно.

2 голосов
/ 28 июля 2010

В Tcl пробел равен пустой строке?

Пробел не равен пустой строке.При использовании TCL 8.5.2 выражение expr {"" eq " "} оценивается как 0.

. Будет ли заданный пробел передан в качестве опции или проанализирован?

Если выпринимаете строки как есть и не выполняете их обработки, тогда вы получите все имеющиеся пробелы.

Должен ли я «обрезать строку» значением или это не нужно?

Ответ на этот вопрос зависит от вашей заявки.Если пробел не имеет существенного значения, обрежьте его, используя команду strim trim (как упомянули сотрудники Donal Fellows).Это, вероятно, упростит вашу логику.Вы также можете использовать regsub -all {\s+} $input_string { }, чтобы свернуть все повторяющиеся пробельные символы внутри строки.

...