среда, 19 июня 2019 г.

Спецификация Go: for утверждения (for statements)

Утверждение "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() }


Читайте также:


Комментариев нет:

Отправить комментарий