Go基础:006.函数

52 阅读1分钟

基础

package main

import "fmt"

// 1. 无参数,无返回值
func hello() {
	fmt.Println("hello")
}

// 2. 有参数,有返回值
func sum(num1, num2 int) int {
	return num1 + num2
}

// 3. 函数返回多个值
func swap(num1, num2 int) (int, int) {
	return num2, num1
}

func main() {
	hello() //"hello"

	fmt.Println(sum(1, 2))  //3
	fmt.Println(swap(1, 2)) // 2, 1
}

函数作为参数

package main

import "fmt"

// 函数作为参数
func calc(f1 func(int, int) int, num1, num2 int) int {
	return f1(num1, num2)
}
func add(num1, num2 int) int {
	return num1 + num2
}
func minus(num1, num2 int) int {
	return num1 - num2
}
func multiply(num1, num2 int) int {
	return num1 * num2
}
func divide(num1, num2 int) int {
	return num1 / num2
}

func main() {
	fmt.Println(calc(add, 1, 2))      //3
	fmt.Println(calc(minus, 1, 2))    //-1
	fmt.Println(calc(multiply, 1, 2)) //2
	fmt.Println(calc(divide, 1, 2))   //0
}