2017-08-04 172 views
-3

我是golang的新手,從python切換到golang。我怎樣才能在一個「開關」Golang switch語句

type Client struct { 
    Type string `json:"type"` 
} 

然後我初始化這個結構類似這樣的轉換這一點,如果else語句:

a:= Client{"v1"} 

if a.Type == "v1" { 
    if err := apiClient.v1("I am version one"); err != nil { 
     log.Printf(" Error: Sending type v1") 
     return err 
    } 
} else if a.Type == "v2" { 
    if err := apiClient.v2("I am version 2"); err != nil { 
     log.Printf(" Error: Sending type v2\n") 
     return err 
    } 
} else { 
     return errors.New(fmt.Sprintf(" Error: Invalid mertype...This Type")) 
    } 
+0

你有什麼試過?這不是一個困難的問題,我敢打賭,通過快速刺入它可以找到答案。 – Verran

+4

[Spec:Switch語句](https://golang.org/ref/spec#Switch_statements)有這樣的例子。 – icza

+1

這也是[在巡迴中](https://tour.golang.org/flowcontrol/9)。 – Adrian

回答

5

即使你可以通過點擊這裏閱讀doc是你自己看着辦吧你應該寫什麼:

switch a.Type { 
case "v1": 
    // ... 
    // no need to 'break' in go 
case "v2": 
    // ... 
default: 
    // usual 'else' clause statements 
} 
+0

我之間的公然非企圖在他們試圖找出自己與Stack Exchange有時 - 「把它帶到SO所以你不必去通過文檔」 –