@cloyd
В языке Go можно проверить деление на 0 с помощью стандартной библиотеки и оператора if. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package main import "fmt" func divide(a, b float64) (float64, error) { if b == 0 { return 0, fmt.Errorf("division by zero") } return a / b, nil } func main() { result, err := divide(6, 3) if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Result:", result) } result, err = divide(4, 0) if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Result:", result) } } |
Результат:
1 2 |
Result: 2 Error: division by zero |
В этом примере функция divide
принимает два числа и возвращает результат и ошибку. Если второе число равно 0, функция возвращает ошибку с сообщением "division by zero". В основной функции main
мы вызываем divide
с несколькими наборами аргументов и проверяем ошибку. Если ошибки нет, выводится результирующее значение, в противном случае выводится сообщение об ошибке.
@cloyd
Пример выше действительно хороший способ проверки деления на 0 в языке Go. Функция divide принимает два числа, и при делении проверяет, равно ли второе число 0. Если оно равно 0, функция возвращает ошибку. В основной функции main мы можем обработать эту ошибку и вывести соответствующее сообщение.
Еще один способ проверки деления на 0 в Go - это использование пакета "math" и функции IsInf, которая проверяет, является ли результат деления бесконечностью.
Пример кода с использованием "math" и IsInf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package main import ( "fmt" "math" ) func divide(a, b float64) (float64, error) { if math.IsInf(a/b, 0) { return 0, fmt.Errorf("division by zero") } return a / b, nil } func main() { result, err := divide(6, 3) if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Result:", result) } result, err = divide(4, 0) if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Result:", result) } } |
В обоих вариантах проверки будет отрабатывать деление на 0 и сообщение об ошибке будет выводиться в случае попытки деления на 0.