6

I have started learning Go yesterday and so far I am fascinated. But I bumped to a problem.

Lets assume that function returns multiple vars (awesome feature). How should I use only nth value and not first n-1 values? In example I just want to check whether key exists in hash map but do nothing with value.

var value, hasElement = myMap[key]

The error I get is

main.go:15: value declared and not used

If I just print value it will all be fine but that is not good.

Rouz
  • 1,247
  • 2
  • 15
  • 37
  • Possible duplicate of [Go: multiple value in single-value context](http://stackoverflow.com/questions/28227095/go-multiple-value-in-single-value-context) and [Return map like 'ok' in Golang on normal functions](http://stackoverflow.com/questions/28487036/return-map-like-ok-in-golang-on-normal-functions) – icza Sep 04 '16 at 15:57

1 Answers1

5

In Go, the character _ is a placeholder indicating that you don't care about the value. Therefore, you can do

var _, hasElement = myMap[key]

which will ignore the first return value.

This extends to functions with any number of return values:

var a, _, _, d, e, _ = bigFunction()
fmt
  • 993
  • 9
  • 18