Этот вопрос проверяет знание механизма возврата нескольких значений из функции в Go.
Да, в Go можно возвращать несколько значений из функции. Для этого в объявлении функции указываются все возвращаемые значения, которые затем могут быть возвращены через оператор return.
В Go функция может возвращать несколько значений, что является одной из отличительных черт этого языка. Вместо того чтобы возвращать только одно значение, можно указать несколько типов данных, которые будут возвращены одновременно. Это удобно, например, когда нужно вернуть ошибку наряду с результатом выполнения.
Пример:
package main
import "fmt"
// Функция возвращает два значения: сумму и ошибку
func add(a, b int) (int, error) {
sum := a + b
if sum < 0 {
return 0, fmt.Errorf("сумма не может быть отрицательной")
}
return sum, nil
}
func main() {
result, err := add(10, 20)
if err != nil {
fmt.Println("Ошибка:", err)
} else {
fmt.Println("Результат:", result)
}
}В этом примере функция add возвращает два значения: целочисленную сумму и ошибку. Если сумма меньше 0, функция возвращает ошибку, в противном случае — результат вычисления.
В каких случаях использовать:
Когда необходимо вернуть несколько значений из функции, например, результат и ошибку.
Когда хочется, чтобы функции в Go были более выразительными и возвращали нужные данные без использования глобальных переменных.