2016-04-23 7 views

Antwort

2

Ja, Sie haben Recht, es ist Syntaxfehler; Es sollte SimpleStmt oder sein. ExprSwitchStmt = "switch" [SimpleStmt ";" ] [Ausdruck] "{" {ExprCaseClause} "}".
siehe: https://golang.org/ref/spec#Switch_statements
In einem Ausdrucksschalter enthalten die Fälle Ausdrücke, die mit dem Wert des Schalterausdrucks verglichen werden. Und das wird funktionieren:

package main 

import (
    "fmt" 
) 

type Test struct { 
    kind int 
} 

func (s *Test) Kind() int { 
    return s.kind 
} 
func main() { 
    f := &Test{12} 
    //fmt.Println(k := f.Kind()) //syntax error: unexpected :=, expecting comma or) 
    switch k := f.Kind(); k { 
    case 12: 
     fmt.Println(k) //12 
    case 0: 
     fmt.Println("Bye!") 
    } 
} 
Verwandte Themen