I am new to Go programming and I am having a problem with my program which uses a "switch" statement to process the value retrieved from a "map".

The map is declared as follows:

```golang
var fields_map map[string]string

```

A value is later retrieved as follows:

```golang
f_code, ok := fields_map["function"]

```

If "ok" has a true value I then do a "switch" on the retrieved code as follows

```
    switch f_code {
        case "meta":
        case "users":
        case "history":
        default:
    }

```

My problem is that for each of the "case" statements I get an error as follows :
invalid case '\u0000' in switch on f\_code (mismatched types rune and string)

According to one webpage I found "rune" is defined as follows:
The Go language defines the word rune as an alias for the type int32

Why am I getting this error ? And why the reference to "rune" ?
Both the key and value for my map are declared as "string" , so I am confused.

Any ideas ?

I have created a reduced version of my code which has the same compile errors

```
     1  package main
     2  
     3  import (
     4      "fmt"
     5  )
     6  
     7  var fields_count int
     8  var fields_map map[string]string
     9  
    10  func parse_fields() {
    11      fields_count = 0
    12      fields_map = make(map[string]string)  // initialize the map
    13  
    14  } // parse_fields
    15  
    16  func main() {
    17  
    18      parse_fields()
    19      f_code, ok := fields_map["function"] // test for existance of function code
    20      if ok {
    21          switch f_code {
    22              case 'meta':
    23                  break;
    24              case 'users':
    25                  break;
    26              case 'history':
    27                  break;
    28              default:
    29                  break;
    30          }// switch
    31      } else {
    32          fmt.Println("<H3>No function code detected</H3>")
    33      }
    34  
    35  } // main

```