GO_INTERVIEW_LIB Telegram 440
💬 Как в Go вернуть из функции ошибку, не импортируя дополнительных пакетов, даже стандартных?

📌 Простой пример:


package main

// CustomError определяет структуру для ошибки
type CustomError struct {
message string
}

// Error реализует интерфейс error для CustomError
func (e *CustomError) Error() string {
return e.message
}

// Функция, которая может вернуть ошибку
func divide(a, b float64) (float64, *CustomError) {
if b == 0 {
// Создание и возврат ошибки
return 0, &CustomError{message: "division by zero"}
}
return a / b, nil
}

func main() {
result, err := divide(4, 0)
if err != nil {
// Обработка ошибки
println("Error:", err.Error())
} else {
println("Result:", result)
}
}


🔷 Структура CustomError содержит одно поле message типа string, которое будет хранить сообщение об ошибке.
🔷 Метод Error возвращает сообщение об ошибке. Это позволяет CustomError удовлетворять интерфейсу error.
🔷 Функция принимает два параметра типа float64 и возвращает два значения: результат типа float64 и ошибку типа *CustomError.
🔷 Если второй аргумент b равен нулю, создается и возвращается ошибка с помощью CustomError.
🔷 Результат и ошибка, возвращаемые функцией, проверяются. Если ошибка существует, она обрабатывается (в данном случае выводится на экран с помощью println). Если ошибки нет, выводится результат деления.
👍11🥱7😁2💯1



tgoop.com/go_interview_lib/440
Create:
Last Update:

💬 Как в Go вернуть из функции ошибку, не импортируя дополнительных пакетов, даже стандартных?

📌 Простой пример:


package main

// CustomError определяет структуру для ошибки
type CustomError struct {
message string
}

// Error реализует интерфейс error для CustomError
func (e *CustomError) Error() string {
return e.message
}

// Функция, которая может вернуть ошибку
func divide(a, b float64) (float64, *CustomError) {
if b == 0 {
// Создание и возврат ошибки
return 0, &CustomError{message: "division by zero"}
}
return a / b, nil
}

func main() {
result, err := divide(4, 0)
if err != nil {
// Обработка ошибки
println("Error:", err.Error())
} else {
println("Result:", result)
}
}


🔷 Структура CustomError содержит одно поле message типа string, которое будет хранить сообщение об ошибке.
🔷 Метод Error возвращает сообщение об ошибке. Это позволяет CustomError удовлетворять интерфейсу error.
🔷 Функция принимает два параметра типа float64 и возвращает два значения: результат типа float64 и ошибку типа *CustomError.
🔷 Если второй аргумент b равен нулю, создается и возвращается ошибка с помощью CustomError.
🔷 Результат и ошибка, возвращаемые функцией, проверяются. Если ошибка существует, она обрабатывается (в данном случае выводится на экран с помощью println). Если ошибки нет, выводится результат деления.

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/440

View MORE
Open in Telegram


Telegram News

Date: |

A vandalised bank during the 2019 protest. File photo: May James/HKFP. Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. Among the requests, the Brazilian electoral Court wanted to know if they could obtain data on the origins of malicious content posted on the platform. According to the TSE, this would enable the authorities to track false content and identify the user responsible for publishing it in the first place. Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American