Все ли функции Голанга возвращают err как второе возвращаемое значение - PullRequest
0 голосов
/ 02 апреля 2019

Я новый программист на Голанге и вижу фрагменты кода, в которых функции возвращают err в качестве последнего аргумента много раз.

f, err := strconv.ParseFloat(asciiFloat, 64)

Вопрос в том, должны ли все функции быть возвращены с ошибкой, даже если в реализации функции не используется обработка ошибок. И как я узнаю, что функция возвращает или не возвращает значение err?

Должен ли я оформлять документы каждый раз, когда мне нужно использовать функцию?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2019

Отвечая на ваш вопрос: К счастью, Go предотвращает ошибки некоторых типов программистов. Это просто не позволит вам скомпилировать программу, если вы забудете одно из значений, которые возвращает функция.

Рекомендуется возвращать ошибки в Go, читайте Ошибки раздел Effective Go

Подпрограммы библиотеки часто должны возвращать вызывающей стороне своего рода индикацию ошибки. Как упоминалось ранее, многозначный возврат Go позволяет легко возвращать подробное описание ошибки вместе с нормальным возвращаемым значением. Рекомендуется использовать эту функцию для предоставления подробной информации об ошибках.

и Обработка ошибок и Go

В Go обработка ошибок важна. Дизайн и условные обозначения языка побуждают вас явно проверять наличие ошибок в случае их возникновения

Однако есть проблема, описанная здесь и, вероятно, будет улучшена в Go 2

Как правило, в программах Go слишком много ошибок проверки кода и недостаточно кода для их обработки.

Дейв Чейни пишет в блоге

Я предлагаю изменить ваш код, чтобы у вас не было столько ошибок, чтобы их обрабатывать.

2 голосов
/ 02 апреля 2019

должны быть выполнены все функции для возврата ошибки

Нет.
Но в случае, если ваша функция может вернуть ошибку - вы должны вернуть эту ошибку как последнее значение.
Рекомендуется возвращать ошибку как последнее значение.

как узнать, что функция возвращает или не возвращает ошибку

Перед использованием какой-либо функциичтобы увидеть эту функцию и в объявлении вы увидите, что функция возвращает.Также полезно прочитать документацию по функционированию и узнать, как использовать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...