golang流程控制

1、switch細節

  • switch的穿透fallthrought
var num int = 10
switch num {
    case 10:
        fmt.Println("ok1")
        fallthrough // 默認只穿透一層
    case 20:
        fmt.Println("ok2")
    default:
        fmt.Println("沒匹配到~~~~")
}
  • type-switch 來判斷某個interface變量中實際指向的變量類型
var x interface{}
var y = 10.0
x = y
switch i := x.(type) {
    case nil:
    fmt.Printf(" x的類型是:%T", i)
    case int:
    fmt.Printf(" x的類型int)
    ...
}

2、for循環

  • 遍歷字符串
遍歷字符串是按字節遍歷
var str string = "hellow,world"
for i := 1; i < len(str); i++ {
    fmt.Println("%c", str[i])
}

for-range 遍歷字符串是按字符遍歷,解決中文遍歷問題
for index, val := range str {
    fmt.Println("index=%d,val=%c", index, val)
}
  • break 標籤
lable2:
for i := 0; i < 4; i++ {
    lable1:
    for j := 0; j < 10; j++ {
        if j == 2 {
            break lable2 // 直接跳出lable2 的循環
        }
    }
}
  • continue 標籤
lable2:
for i := 0; i < 4; i++ {
    lable1:
    for j := 0; j < 10; j++ {
        if j == 2 {
            continue lable2 // 跳到lable2 接着循環
        }
    }
}
相關文章
相關標籤/搜索