в tcl, как работает следующий оператор foreach? - PullRequest
1 голос
/ 13 марта 2012

У меня есть вопрос о foreach в tcl:

foreach id "6 8" {
   #do something here;
}

это "6 8" список?и что означает "6 8"?

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Главное, что нужно помнить, - это то, что Tcl не имеет типов как таковых, по крайней мере, не так, как пользователь должен беспокоиться о них.Скорее, каждое значение является строкой, и каждая команда пытается обработать его как требуемый тип значения.

Например:

set value "1"
expr {$value + 1} ; # treat $value as a number
lindex $value 0   ; # treat $value as a list

Для вашего кода значение 6 8 равноинтерпретируется как список командой foreach со значениями 6 и 8.Двойные кавычки вокруг значения просто группируют содержимое внутри них как одно значение.Они (dqs) не обозначают какой-либо определенный тип (например, строка, список, число).

2 голосов
/ 13 марта 2012
foreach id "6 8" {
    # do something
}

В этом контексте «6 8» - это список двух элементов: 6 и 8 . Цикл для присвоения идентификатора сначала 6 , введите тело цикла. В следующий раз, идентификатор будет 8 и введите тело цикла. Когда в списке заканчиваются элементы, цикл завершается.

...