入門:基礎語法(五)函式
函式是一個程式語言的靈魂,下面介紹一下golang的函式,我們做一個輸入兩個數,一個符號,判斷符號種類進行計算的函式:
package main import "fmt" func main() { if result, err := eval(1, 3, "÷"); err != nil { fmt.Println("ERR:", err) } else { fmt.Println(result) } } func eval(a, b int, op string) (int, error) { switch op { case "+": return a + b, nil case "-": return a - b, nil case "*": return a * b, nil case "/": return a / b, nil default: return 0, fmt.Errorf("Unknown operation:%s", op) } }
我們可以看一下go的原始碼,不難發現,所有函式幾乎都是一個返回值一個err,我們也根據原始碼的規則定義了eval()函式,這是golang函式的第一個特性:多返回值
用switch的方法去判斷太土,小學生才這麼做,我們用函式程式設計來重做一個: