You can use a function call to do the cast: func byteErr2stringErr(b []byte, e error) (string, error) { return string(b), e } content, err := byteErr2stringErr(os.ReadFile(path))
It's still using additional variables, but they are hidden inside the helper function. On Sunday, May 16, 2021 at 8:07:24 PM UTC-7 Kurtis Rader wrote: > On Sun, May 16, 2021 at 7:49 PM 'Marc Michael' via golang-nuts < > golan...@googlegroups.com> wrote: > >> as Go provides multi values I would expect that's possible to cast such a >> multi value. Do I see it correctly, that Go does not provide it? >> >> Example: >> >> os.ReadFile returns []byte, error. >> I want to cast the []byte to a string. >> >> content, err := os.ReadFile(path) >> >> Is it possible to cast the []byte directly to a string without using a >> second variable? >> > > No, it is not possible to transform the type of one return value in a > multi-valued > expression such as a function call. Such syntactic sugar would have limited > usefulness and, in my opinion, is likely to decrease readability and thus > be a source of bugs. If you find yourself needing to perform such > conversions so often that such a feature is useful that suggests the APIs > you're using need to be changed. > > -- > Kurtis Rader > Caretaker of the exceptional canines Junior and Hank > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/eca8c069-5537-43ae-969c-cb334b7d7484n%40googlegroups.com.