Go возвращает значения разных типов в методах

У меня есть структура, и я привязал к ней некоторые методы. Мне нужно иметь что-то вроде этого:

func Start() (*MyStruct or empty struct{}, error)

Как я могу этого добиться? Как мы поступаем с функциями, которые могут возвращать значения разных типов в GoLang? Извините за глупый вопрос. Много искал о дженериках, но ничего не нашел о них в методах... Я понимаю, как мы имеем дело с простыми функциями и дженериками, но как насчет методов? Пожалуйста помоги! Вот более широкий пример:
https://play.golang.com/p/7kPHEVC_G3-

Какова цель возврата пустой структуры? Просто вернись nil

blackgreen 09.04.2022 18:11
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
1
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как я вижу, вы хотите вернуть пустую структуру только при ошибках. Идиоматический способ - вернуть nil и error, а не пустую структуру, например:

func Test() (*CustomStruct, error) {
    cs := &CustomStruct{}
    ...
    err := DoSomething()
    if err != nil {
        return nil, err
    }
    ...
    return cs, nil
}

Кроме того, если вы используете VS Code с расширением Go, у вас будет шаблон по умолчанию iferr, чтобы упростить ввод. Просто введите iferr и нажмите TAB.

Другие вопросы по теме