title: Why isn't fallthrough allowed in a type switch?
body: <p>I'm wondering why fallthrough isn't allowed in a type switch statement in golang.</p>
  
  <p>According to the <a href="http://golang.org/ref/spec">specification</a>: "The "fallthrough" statement is not permitted in a type switch.", which doesn't explain much about WHY it isn't allowed.</p>
  
  <p>The code attached is to simulate a possible scenario were a fallthrough in a type switch statement might have been useful.</p>
  
  <p><strong>Notice!</strong> This code doesn't work, it will produce the error: "cannot fallthrough in type switch". I'm just wondering what possible reasons might have been for not allowing the fallthrough statement in a type switch.</p>
  
  <pre><code>//A type switch question
  package main
  
  import "fmt"
  
  //Why isn't fallthrough in type switch allowed?
  func main() {
      //Empty interface
      var x interface{}
  
      x = //A int, float64, bool or string value
  
      switch i := x.(type) {
      case int:
          fmt.Println(i + 1)
      case float64:
          fmt.Println(i + 2.0)
      case bool:
          fallthrough
      case string:
          fmt.Printf("%v", i)
      default:
          fmt.Println("Unknown type. Sorry!")
      }
  }
  </code></pre>