day02 Go 函式
阿新 • • 發佈:2018-11-10
1、函式語法要點
- 返回值型別寫在最後面
- 可以返回多個值
- 函式可以作為引數
- 沒有預設引數,可選引數
2、Go 語言函式定義格式如下:
func function_name( [parameter list] ) [return_types] { 函式體 }
- func:函式由 func 開始宣告
- function_name:函式名稱,函式名和引數列表一起構成了函式簽名。
- parameter list:引數列表,引數就像一個佔位符,當函式被呼叫時,你可以將值傳遞給引數,這個值被稱為實際引數。引數列表指定的是引數型別、順序、及引數個數。引數是可選的,也就是說函式也可以不包含引數。
- return_types:返回型別,函式返回一列值。return_types 是該列值的資料型別。有些功能不需要返回值,這種情況下 return_types 不是必須的。
- 函式體:函式定義的程式碼集合。
3、例項
package main import ( "fmt" "io/ioutil" ) func bounded(v int) string { if v > 100 { return "A" } else if v > 80 { return "B" } else { return "C" } } func eval (a,b int, op string) int { var result int switch op { case "+": result = a + b case "-": result = a - b case "*": result = a * b case "/": result = a / b default: panic("unsupport op:" + op) } return result } func grade(v int) string { var g string switch { case v < 0 || v > 100 : panic(fmt.Sprintf("unsupport nums %s",v)) case v <= 60: g = "D" case v <= 70: g = "C" case v <= 80: g = "B" case v <= 100: g = "A" } return g } //返回多個值 func swap(x, y string) (string, string) { return y, x } func main ( ) { fmt.Println( bounded(99), bounded(22), bounded(77), ) // 方法一 const filename = "abc.txt" content,err := ioutil.ReadFile(filename) if err != nil { fmt.Println(err) } else { fmt.Printf("%s\n",content) } //方法二 if content1,err1 := ioutil.ReadFile(filename) ; err1 != nil { fmt.Println(err1) } else { fmt.Printf("%s\n", content1) } fmt.Println( eval(3,4,"+"), eval(1,3,"*"), ) fmt.Println( grade(50), grade(77), grade(100), ) a, b := swap("Mahesh", "Kumar") fmt.Println(a, b) }