Это называется идиома "запятая нормально" в Go, которая, по сути, совпадает с:
nferr, ok := err.(ops.NonFatalError)
if ok {
w.NonFatalDiagnostics = w.NonFatalDiagnostics.Append(nferr.Diagnostics)
return nil
}
Единственная разница - это область действия nferr
и ok
, которая находится в пределах if
block.
как будут оцениваться переменные nferr, ok?
Если err
имеет тип ops.NonFatalError
, nferr
будет конкретным типомops.NonFatalError
, иначе, ok
будет ложным, а nferr
будет нулевым значением ops.NonFatalError
.
Какая переменная в порядке перед открытием фигурной скобки?
Посмотрите на приведенный выше код, он по сути тот же.
оператор return nil, возвращается ли он из функции, код в?
Да.
Редактировать
Из комментария @ ThunderCat, который я настоятельно рекомендую вам пройти, обзор Go объясняет много синтаксиса:
Введите утверждения
Если с кратким заявлением