
Go语言入门心法(八): mysql驱动安装报错onnection failed
Go语言入门心法(十):Go语言操作MYSQL(CRUD)|事务处理
函数相关认知升维:
- 函数的功能就是把相对独立的某个相同或者时类型的功能抽象处理,使之成为一个独立的实体;这样可以避免重复代码的编写;
- (1)函数的声明: func 函数名(参数列表) (返回参数列表) {
- 函数体
- }
- (2)匿名函数声明: func(参数列表) (返回参数列表) {
- 函数体
- }
- (3)函数不需要返回值时,省略返回值参数的列表;
- 函数参数的简写: (3.1)如果函数的参数列表的类型相同时,可以省略前面参数的类型,只写后一个参数的类型;
- 函数返回值简写: (3.2)如果函数参数的返回值都是同一类型,在返回值列表中可将返回参数省略
- (4)匿名函数声明同时赋值
- func(形参列表)(返回值列表){
- 函数体
- }(实参列表)
- package main
-
- import "fmt"
-
- /*
- 函数相关认知升维:
- 函数的功能就是把相对独立的某个相同或者时类型的功能抽象处理,使之成为一个独立的实体;这样可以避免重复代码的编写;
- (1)函数的声明: func 函数名(参数列表) (返回参数列表) {
- 函数体
- }
- (2)匿名函数声明: func(参数列表) (返回参数列表) {
- 函数体
- }
- (3)函数不需要返回值时,省略返回值参数的列表;
- 函数参数的简写: (3.1)如果函数的参数列表的类型相同时,可以省略前面参数的类型,只写后一个参数的类型;
- 函数返回值简写: (3.2)如果函数参数的返回值都是同一类型,在返回值列表中可将返回参数省略
- (4)匿名函数声明同时赋值
- func(形参列表)(返回值列表){
- 函数体
- }(实参列表)
- */
- func main() {
- // 函数赋值给变量
- var a = add
- // 调用函数
- println("调用add函数: ", a(12, 22))
- // 使用函数作为类型声明一个函数变量
- var b func(t, m int) (sub int)
- println("函数b = ", b)
- // 给函数变量b 赋值同类型的函数
- b = subtraction
- println("使用函数声明函数变量并调用函数: ", b(500, 200))
-
- print("调用无返回值的函数: ")
- printStr("无参函数")
- println()
- println("声明同时调用匿名函数")
- println()
- println()
- println("=========================声明同时调用匿名函数=========================")
- func(data string) {
- println("声明匿名函数的同时调用匿名函数: ", data)
- }("匿名函数的实参")
-
- println()
- println("========================先声明在调用匿名函数==========================")
- f1 := func(a, b int) (t int) {
- t = a * b
- return t
- }
- println("调用匿名函数[使用先声明后调用的方方式]: ", f1(5, 6))
-
- }
-
- // 定义add函数
- func add(x int, y int) (sum int) {
- sum = x + y
- return sum
- }
-
- // 定义subtraction函数,同类型参数,省略前面变量的类型
- func subtraction(a, b int) (sub int) {
- if a > b {
- sub = a - b
- } else {
- sub = b - a
- }
- return sub
- }
-
- // 无返回值的函数省略返回值列表
- func printStr(content string) {
- fmt.Printf("传入的参数 %v", content)
- }
运行效果:
GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPFunctionToGrammar_go.exe D:\program_file\go_workspace\org.jd.data\funcation\OOPFunctionToGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPFunctionToGrammar_go.exe
调用add函数: 34
函数b = 0x0
使用函数声明函数变量并调用函数: 300
调用无返回值的函数: 传入的参数 无参函数
声明同时调用匿名函数
=========================声明同时调用匿名函数=========================
声明匿名函数的同时调用匿名函数: 匿名函数的实参========================先声明在调用匿名函数==========================
调用匿名函数[使用先声明后调用的方方式]: 30Process finished with the exit code 0
函数变量||函数可变参数:
在go语言中,函数是一种类型,可以将其保存在变量中
函数变量的声明如下:
var 变量名称 func(形成列表)(返回值列表)
func 函数名(实参列表,...参数类型)(返回值类别){函数体 }
- package main
-
- import "fmt"
-
- /*
- 函数变量||函数可变参数:
- 在go语言中,函数是一种类型,可以将其保存在变量中
- 函数变量的声明如下:
- var 变量名称 func(形成列表)(返回值列表)
- */
- func main() {
-
- println("========================go语言中函数的声明======================")
- a := 100
- b := 20
- var f1 func(x int, y int) (sum int, sub int)
- f1 = addSub
- sum, sub := f1(a, b)
-
- fmt.Println(a, "+", b, sum)
- fmt.Println(a, "-", b, sub)
- println("调用返回默认值的函数: ")
- e, f, g := defaultValue()
- fmt.Printf("调用函数返回默认值分别为: %v ,%v ,%v ", e, f, g)
- h, m, n := defaultValueInit()
- println()
- fmt.Printf("调用函数返回默认值分别为: %v ,%v ,%v \n", h, m, n)
- println()
- println()
- fmt.Println("1+2+3+4+5+6+7+8+9+10 = ", addSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
-
- println("===========================来看看go语言内置的可变参数的函数===========================")
- println(`
- 看看println函数的源代码:
- func println(args ...Type)
- 看看fmt.printf函数的源代码:
- func Printf(format string, a ...any) (n int, err error) {
- return Fprintf(os.Stdout, format, a...)
- }
- `)
-
- }
-
- // 定义函数是给出默认的返回值
- func defaultValue() (a int, b string, c bool) {
- return
- }
-
- // 定义函数是给出默认的返回值
- func defaultValueInit() (a string, b string, c bool) {
- return "1", "", false
- }
-
- func addSub(x int, y int) (sum int, sub int) {
- sum = x + y
- sub = x - y
- return sum, sub
- }
-
- // 定义可变参数函数
- func addSum(slice ...int) int {
- sum := 0
- for _, value := range slice {
- sum = sum + value
- }
- return sum
- }
运行效果:
GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPFunctionToParameterUserMultParams_go.exe D:\program_file\go_workspace\org.jd.data\funcation\OOPFunctionToParameterUserMultParams.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPFunctionToParameterUserMultParams_go.exe
========================go语言中函数的声明======================
100 + 20 120
100 - 20 80
调用返回默认值的函数:
调用函数返回默认值分别为: 0 , ,false
调用函数返回默认值分别为: 1 , ,false
1+2+3+4+5+6+7+8+9+10 = 55
===========================来看看go语言内置的可变参数的函数===========================
看看println函数的源代码:
func println(args ...Type)
看看fmt.printf函数的源代码:func Printf(format string, a ...any) (n int, err error) {
return Fprintf(os.Stdout, format, a...)
}
Process finished with the exit code 0
忙着去耍帅,后期补上..........