
Go语言入门心法(八): mysql驱动安装报错onnection failed
Go语言入门心法(十):Go语言操作MYSQL(CRUD)|事务处理
一: go语言函数认知
函数相关认知升维:
函数的功能就是把相对独立的某个相同或者时类型的功能抽象处理,使之成为一个独立的实体;这样可以避免重复代码的编写;
(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语言可变参数与函数变量
函数变量||函数可变参数:
在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
三: 函数闭包认知
四: 函数延迟执行|内置函数
忙着去耍帅,后期补上..........
Go语言入门:函数、数据结构与高级特性,
本文介绍了Go语言的基础语法,包括函数声明、匿名函数、参数简写、返回值简化,以及函数变量、可变参数、闭包和延迟执行等高级概念。后续章节涉及结构体、接口、异常处理、并发编程、数据库操作和GORM框架的应用。
900

被折叠的 条评论
为什么被折叠?



