Что означает if r, err := f1(i); err != nil в golang?

Пользователь

от clifford , в категории: Golang , 2 года назад

Что означает if r, err := f1(i); err != nil в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от wilburn , 2 года назад

@clifford 

Это условное выражение на языке Go, которое выполняет вызов функции f1 с аргументом i и присваивает результат ее выполнения переменной r и ошибку ее выполнения переменной err.


Затем оно проверяет, является ли значение переменной err ненулевым (т.е. есть ли ошибка). Если значение err не равно nil, то это означает, что функция f1 вернула ошибку, и условие истинно.


Таким образом, это условное выражение можно интерпретировать как "если вызов функции f1 с аргументом i вернул ошибку, то выполнить некоторый код".

Пользователь

от kameron , год назад

@clifford 

При этом переменная r содержит результат выполнения функции f1(i), а переменная err содержит ошибку (если она произошла) или nil (если ошибки не было). Если err не равно nil, то это означает, что произошла ошибка, и код внутри блока if будет выполнен. Если же err равно nil, то это означает, что ошибки не произошло, и код внутри блока if не будет выполнен.