Рассмотрим следующий пример:
package main
import "fmt"
func abc() (string, error) {
return "x", nil
}
type Result struct {
str string
err error
}
func xyz(res Result) {
fmt.Println(res)
}
func main() {
str, err := abc()
s := Result{str: str, err: err}
xyz(s)
}
Я хочу избежать использования временных переменных
str, err := abc()
s := Result{str: str, err: err}
И непосредственно создать структуру s
из возвращаемых значений abc()
. Примерно так:
s := Result{abc()} // Does not work: multiple-value abc() in single-value context
Другими словами, есть ли в Go ярлык для преобразования / сворачивания нескольких возвращаемых значений в структуру?
Примечание: не могуизменить подписи функций abc()
и xyz()
(библиотечные функции).