Multiple values in single-value context

Due to error handling in Go, I often end up with multiple values functions. So far, the way I have managed this has been very messy and I am looking for best practices to write cleaner code.

Let’s say I have the following function:

type Item struct {
   Value int
   Name string

func Get(value int) (Item, error) {
  // some code

  return item, nil

How can I assign a new variable to item.Value elegantly. Before introducing the error handling, my function just returned item and I could simply do this:

val := Get(1).Value

Now I do this:

item, _ := Get(1)
val := item.Value

Isn’t there a way to access directly the first returned variable?