Idiomatische Methode zum Ausführen der Konvertierung / Typzusicherung für mehrere Rückgabewerte in Go

Wie lassen sich mehrere Rückgabewerte in Go idiomatisch umsetzen?

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")
    }   
}

Übrigens heißt escasting wenn es um schnittstellen geht?

i := interface.(int)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage