на выходе как-то сразу привести возвращаемый интерфейс к типу?
func sample() (interface{}, error) {
return interface{}, nil
}
var response = sample().(string)
пытался в такой способ, но он работает только в том случае, если функция возвращает 1 лишь объект
Если два значения, то привести к нужному типу сразу нельзя. Игнорировать ошибки - плохо. Но если у вас, например, вызов функции от какого либо константного значения и точно не будет ошибки, то можно сделать функцию обертку, которая будет возвращать только нужную вам переменную, но лучше этого избежать. Паника происходит не от приведения к типу, а от дальнейшего использования переменной, без проверки на успех приведения или без проверки на nil. При приведения типа, может быть возвращено одно или два значения, если добавить вторую переменную для получения значения, например так: response, ok := sample().(string) То в переменной ok будет true, если приведение удалось Вот пример по вашим вопросам: https://play.golang.org/p/rL2DW05qKS-
Нельзя. Можешь сделать Cast(v interface{}, err error) (string, error) { return v.(string), err } response, _ := Cast(Sample())
Обсуждают сегодня