day02 Go 函数

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)
}

猜你喜欢

转载自www.cnblogs.com/fanghongbo/p/9813102.html