Go 語言學習之路(六)

1. if

if 語句除了沒有了「 ( ) 」 之外(甚至強制不能使用它們),看起來跟 C 或者 Java 中的一樣,而 「 { } 」 是必須的。
(耳熟嗎?)
範例程式碼

package main

import (
    "fmt"
    "math"
)

func sqrt(x float64) string {
    if x < 0 {
        return sqrt(-x) + "i"
    }
    return fmt.Sprint(math.Sqrt(x))
}
func main() {
    fmt.Println(sqrt(2), sqrt(-4))
}

輸出結果

1.4142135623730951 2i

2. if 簡短的敘述

跟 for 一樣,「 if 」 語句可以在條件之前執行一個簡單的語句。
由這個語句定義的變數的作用範圍僅在 if 範圍之內。
(在最後的 return 語句處使用 v 看看。)
範例程式碼

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    }
    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

輸出結果

9 20

3. if 和 else

在 if 的簡短敘述定義的變數同樣可以在任何對應的 else 區塊中使用。
範例程式碼

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    } else {
        fmt.Printf("%g >= %g\n", v, lim)
    }
    // can't use v here, though

    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

輸出結果

27 >= 20
9 20 

此為個人學習 Go 語言的過程記錄僅供參考,如有錯誤歡迎回報討論。
部分語句引用官方的說明。
部分用字遣詞可能會與他人理解有出入,歡迎討論。

comments powered by Disqus