Was ist die idiomatische Methode, um mehrere Rückgabewerte in Go umzuwandeln?
Können Sie dies in einer einzelnen Zeile tun oder müssen Sie temporäre Variablen verwenden, wie ich es in meinem Beispiel unten getan habe?
package main
import "fmt"
func oneRet() interface{} {
return "Hello"
}
func twoRet() (interface{}, error) {
return "Hejsan", nil
}
func main() {
// With one return value, you can simply do this
str1 := oneRet().(string)
fmt.Println("String 1: " + str1)
// It is not as easy with two return values
//str2, err := twoRet().(string) // Not possible
// Do I really have to use a temp variable instead?
temp, err := twoRet()
str2 := temp.(string)
fmt.Println("String 2: " + str2 )
if err != nil {
panic("unreachable")
}
}
Wird es übrigens genannt, casting
wenn es um Schnittstellen geht?
i := interface.(int)