学习笔记根据 无闻 go语言基础教程 整理
function
- Go 函数不支持嵌套、重载和默认参数
- 支持:无需声明原型、不定长度变参、多返回值、命名返回值参数、匿名函数、闭包
- 定义函数使用关键字
func
,且左大括号不能另起一行 - 函数也可以做为一种类型使用
- 示例代码:
package main
import (
"fmt"
)
func main() {
}
func test1(a int b string) (int string) {
}
func test2(a int b string) {
}
func test3(a int b string) bool {
}
func test4(a,b,c int) int {
}
func test5(a,b,c int) (a,b,c int) {
a, b, c = 1, 2, 3
return
}
func test6(a,b,c int) (int, int, int) {
a, b, c := 1, 2, 3
return a, b, c
}
func test7(a ...int) {
fmt.Println(a)
}
func test8(s ...int) {
s[0] = 3
s[1] = 4
fmt.Println(s)
}
func test8T() {
a, b := 1, 2
test8(a, b)
fmt.Println(a, b)
}
func test9(s []int) {
s[0] = 5
s[1] = 6
s[2] = 7
s[3] = 8
fmt.Println(s)
}
func test9T() {
s1 := []int{1,2,3,4}
test9(s1)
fmt.Println(s1)
}
func test10(a *int) {
*a = 2
fmt.Println(*a)
}
func test10T() {
a := 1
test10(&a)
fmt.Println(a)
}
func test11() {
fmt.Println("Func 11")
}
func test11T() {
a := test11
a()
}
func test12(x int) func(int) int {
return func (y int) int{
return x + y
}
}
func test12T() {
f := test12(10)
fmt.Println(f(1))
fmt.Println(f(2))
}