3.6 函数

一、函数定义

  1. 函数定义格式:

    func 函数名(参数名 类型, 参数名 类型...) 返回值类型 {
        内容
    }

    备注:

    传递的参数,同类型可以卸载一起,比如:a, b, c int

    返回值类型可以是函数,7.1 函数式编程

  2. 返回值也可以传多个参数,也可以给返回值起名字

  3. 直接向接收返回的某个值,其余不接收的值可以用_代替

  4. 可以使用函数是编程处理吞并问题

    // 简单函数
    func eval(a, b int, op string) int {
    	switch op {
    	case "+":
    		return a + b
    	case "-":
    		return a - b
    	case "*":
    		return a * b
    	case "/":
    		return a / b
    	default:
    		panic("error:" + op)
    	}
    	return 0
    }
    
    // 多参数,多返回函数
    func div(a, b int) (int, int) {
    	return a / b, a % b
    }
    
    // 返回值命名函数
    func div2(a, b int) (q, r int) {
    	//return a / b, a % b
    	// 不建议的代码方式
    	q = a / b
    	r = a % b
    	return
    }
    
    // 函数式编程,op func(int, int) int是另一个函数
    func apply(op func(int, int) int, a, b int) int {
    	return op(a, b)
    }
  5. 可变参数列表函数

    func sum(numbers ...int) int {
    	s := 0
    	for i := range numbers {
    		s += numbers[i]
    	}
    	return s
    }

    备注:标识调用sum函数可以传任意数量

    range用于遍历的关键字

二、总结

  1. 返回值类型卸载后面

  2. 可以返回多个值

  3. 函数可以作为参数

  4. 没有默认参数与可选参数

Last updated

Was this helpful?