《1》.for循环:
for循环的话 我感觉这个for循环跟python的for循环大差不差
其中的格式可分为:1基本的for循环for 初始化语句; 条件表达式; 后续语句 { // 循环体代码 }
示例如下:package main import "fmt" func main() { for i := 1; i <= 5; i++ { fmt.Println("Iteration:", i) } }
这种for循环属于最基础的一种。没什么好说的。
2.for+range类型的:for+range类型的循环常用于有关切片,数组的遍历等等。
循环的模版是for index, value := range collection { // 循环体代码 }
示例如下
package main import "fmt" func main() { nums := []int{1, 2, 3, 4, 5} for index, value := range nums { fmt.Printf("Index: %d, Value: %d\n", index, value) } }
说到range函数不得不说一下,有关Go语言中数组的引用了// nums := []int{1, 2, 3}
其中的[]的意思就是数组的标志 而int是其类型 {}里面的内容就是数组里面的内容了。
《2》map函数: 看了那么多解释 我觉得这就一个字典序,有关简单声明就是比如var myMap map[string]int 字典序嘛,就是key和value 相应的里面的声明表示这个map的key的类型是string 而value 是int 类型的 而初始化一个map就要用到make函数 myMap = make(map[string]int)
除此之外 还有另外一种声明方式并且一步初始化:anotherMap := map[string]string{ "name": "John", "age": "30", }
这一种表达很简洁,并且很清晰的表示每一个key以及相应的value
《3》函数的定义以及引用。
1》简单自定义函数:常用到关键词为func 来定一个函数 比如定义一个简单的加法函数:就可以写为:func add(x, y int) int { return x + y } 其中第一个int用来定义函数的参数类型 (这里直接省略了一个int ) 第二个int则是定义的return的 返回值
2》当然 这只是表示只有一个返回值。
除此之外,还有返回多个返回值的自定义函数:比如 func dd(x,y,float64) (float64,error){ if y==0{ return 0,errors.News("division by zero") } return x/y,nil }
这个函数所表示的意思就是返回两个值 第一个就是x/y的结果 第二个就是错误执行之后的报错信息。如果报错将会调用errors包里面的New函数将错误呈现出来,如果无误将会返回nil(空)
3》变长参数:Go语言支持变长参数,在函数参数列表中使用...标识,表示该参数可以接收任意数量的值。
简单来说就是可以省略参数的数量。
func sum(numbers ...int) int { total := 0 for _, num := range numbers { total += num } return total }
这个示例函数就是...变长函数的示例:
这个就是无参数的时候。
接着为两个参数:
可以看到 并不影响程序的正常执行 这时候两个参数分别为1,2
这里我简单说一下这个代码的原理 首先值得注意的就是关于参数中的numbers ...int 这其实就是一个切片slice 我们通过访问这个这个切片数组 可以得到我们加入的参数的值 当然 这里面包括索引值以及对应的迭代得到的整数值 在这里我们需要进行的加和 并不关心他的索引值 因此用_来代替索引的变量。
4》匿名函数: Go语言支持匿名函数,也称为闭包。匿名函数可以在声明后直接调用或赋值给变量,通常用于实现简单的逻辑。 这里直接调用一个示例就行:
func main() {
// 匿名函数直接调用
func() {
fmt.Println("Hello, anonymous function!")
}()
// 匿名函数赋值给变量
greet := func() {
fmt.Println("Hello, anonymous function with a variable!")
}
greet() // 调用变量中的匿名函数
}
5》defer语句: defer语句用于延迟执行一个函数,通常用于资源释放、清理等操作,无论函数是否出现异常都会执行。
defer fmt.Println("Deferred function")
fmt.Println("Regular function")
}
今日笔记寄到这里(都是基础语法QAQ)