Let's assume I want to define a function with named result parameters, one of which is a string
. This function internally calls another function, that returns a bytes representation of such string.
Is there a way to cast the result without using a temporary variable?
func main() {
out, _ := bar("Example")
fmt.Println(out)
}
func foo(s string) ([]byte, error) {
return []byte(s), nil
}
func bar(in string) (out string, err error) {
// is there a way to assign the result to out
// casting the value to string in the same line
// istead of using the tmp variable?
tmp, err := foo(in)
if err != nil {
return "", err
}
return string(tmp), nil
}
The idea is that, if that's possible, I could potentially shorten the code to
func bar(in string) (out string, err error) {
// assuming there is a way to cast out to string
out, err := foo(in)
return
}
Does it make sense?
There is no way to cast in a multiple return from a function. That doesn't mean you can't shorten your code though. http://play.golang.org/p/bf4D71_rZF If you don't care about the error then just cast the variable in your inline return
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With