您可以执行以下操作(http://play.golang.org/p/JaIr_0a5_-):
type Name struct { string}func (n *Name) String() string { return n.string}func NewName(name string) (*Name, error) { switch name { case "John": case "Paul": case "Rob": default: return nil, fmt.Errorf("Wrong value") } return &Name{string: name}, nil}Golang不提供运算符重载,因此您无法在投射或影响值时进行检查。
根据您要尝试执行的操作,可能需要执行以下操作(http://play.golang.org/p/uXtnHKNRxk):
type Name stringfunc (n Name) String() string { switch n { case "John": case "Paul": case "Rob": default: return "Error: Wrong value" } return string(n)}


