这是我参与「第五届青训营 -后端场」笔记创作活动的的第1篇笔记。 今天主要学习了Go语言的基础语法及应用,下面是我今天的学习总结:
1.变量的定义
在Go语言中,变量的定义包括以下两种方式:
package main
func main() {
// 常规定义方式
var temp int = 10
// 自动推导式,可以根据等号后面的内容,推导出变量的类型
temp := 10
}
2.匿名变量
在Go语言中存在匿名变量,在定义变量时,用 '_' 表示:
package main
import "fmt"
func test() (int, int) {
return 10, 30
}
func main() {
// _ 匿名变量
// 此时test()函数返回 10和20。但是通过下面方式定义后,就能单独接收其中一个返回值
a, _ := test()
fmt.Println(a)
}
3.函数
下面是Go语言中,函数的形式有许多种:
package main
import "fmt"
func main() {
printInfo()
myPrint("hello world")
fmt.Println(add(10, 20))
println(swap("芝士A", "芝士B"))
}
// 无参无返回值函数
func printInfo() {
fmt.Println("芝士printInfo")
}
// 有一个参数的函数
func myPrint(msg string) {
fmt.Println(msg)
}
// 有两个参数的函数
// 有一个返回值的函数
func add(a, b int) int {
return a + b
}
// 有多个返回值的函数
func swap(x, y string) (string, string) {
return y, x
}
还有一个特殊的——匿名函数。匿名函数可以在定义时直接用或者定义后赋值给一个变量,再通过变量调用匿名函数:
package main
import "fmt"
func main(){
fun1 := func(x, y int) int {
return x+y
} (10, 20)
fmt.Println(fun1)
// or
fun2 := func(x, y int) int {
return x+y
}
fmt.Println(fun2(10, 20)
}
在Go中,我们也可以把函数作为参数传递给另一个函数:
package main
import "fmt"
func main() {
r2 := oper(3, 4, add)
fmt.Println(r2)
r3 := oper(5, 6, sub)
fmt.Println(r3)
}
func oper(a, b int, fun func(int, int) int) int {
r := fun(a, b)
return r
}
func add(a, b int) int {
return a + b
}
func sub(a, b int) int {
return a - b
}
在Go的函数中,我们可以传入一个可变参数,可变参数就是一个占位符,可以将 1 个或者多个参数赋值给这个占位符,这样不管实际参数的数量是多少,都能交给可变参数来处理。(注:在一个函数中,只能存在一个可变参数)
package main
import "fmt"
func main() {
fmt.Println(getSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
}
func getSum(nums ...int) int {
sum := 0
for i := 0; i < len(nums); i++ {
sum += nums[i]
}
return sum
以上就是本人今天的一些学习总结。欢迎大家批评指正。