Утверждение "for" определяет повторное выполнение блока. Существует три формы: итерация может управляться единственным условием, "for" условием, "range" условием.
ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .
for утверждения с единственным условием
В своей простейшей форме "for" утверждение определяет повторное выполнение блока, пока булево условие оценивается как true. Условие оценивается перед каждой итерацией. Если условие отсутствует, оно эквивалентно логическому значению true.
for a < b {
a *= 2
}
for утверждения с "for" условием
Утверждение "for" с ForClause также контролируется его условием, но дополнительно оно может указывать утверждения init и post, такие как утверждения присваивания, инкремента или декремента. Утверждение init может быть кратким объявлением переменной, но оператор post не должен. Переменные, объявленные утверждением init, повторно используются в каждой итерации.
ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .
InitStmt = SimpleStmt .
PostStmt = SimpleStmt .
for i := 0; i < 10; i++ {
f(i)
}
Если не пусто, утверждение init выполняется один раз перед вычислением условия для первой итерации; оператор post выполняется после каждого выполнения блока (и только если блок был выполнен). Любой элемент ForClause может быть пустым, но точка с запятой обязательна, если только нет условия. Если условие отсутствует, оно эквивалентно логическому значению true.
for cond { S() } то же самое что и for ; cond ; { S() }
for { S() } то же самое что и for true { S() }
Читайте также:
- Основы Go: цикл for
- Эффективный Go: цикл for
- Спецификация Go: switch утверждения (switch statements), переключатели выражений (expression switch)
Комментариев нет:
Отправить комментарий