From f108069c6303cb64c5d61a6abb9a6d86e69a438f Mon Sep 17 00:00:00 2001 From: Shikong <919411476@qq.com> Date: Mon, 20 Sep 2021 21:12:28 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Function=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/function/main.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 base/function/main.go diff --git a/base/function/main.go b/base/function/main.go new file mode 100644 index 0000000..fe72f80 --- /dev/null +++ b/base/function/main.go @@ -0,0 +1,42 @@ +package main + +import "fmt" + +// func 函数名(参数名 参数类型...) ([返回值名] 返回值类型...){...} +// 当 连续 多个参数 类型相同时 可省略前面的类型声明 +// 返回值 可不声明 返回值名称 +func sum(x, y int) (res int) { + res = x + y + + // 使用命名返回值时 可不写返回变量 直接 return 返回 命名返回值 + return +} + +func sum2(x int, y int) int { + return x + y +} + +// 可变参数 +// 可变参数 必须 放在参数中的最后一个 +// golang 中 没有 默认参数 的概念 +func sum3(item ...int) (res int) { + for _, v := range item { + res += v + } + return +} + +func main() { + res := sum(1, 2) + fmt.Printf("res => %T %+v\n", res, res) + + fmt.Println("=========================================================") + + res = sum2(1, 2) + fmt.Printf("res => %T %+v\n", res, res) + + fmt.Println("=========================================================") + + res = sum3(1, 2, 3) + fmt.Printf("res => %T %+v\n", res, res) +}