这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
Go语言中的循环
package main
import "fmt"
func main() {
i :=1
for{
fmt.Println("loop")
break
}
for i:=7; j<9; j++{
fmt.PrintLnl(j)
}
for n:=0; n<5; n++{
if n&2==0{
continue
}
fmt.PrintIn(n)
}
for i== 3 {
tmt.Println(()
i=i+1
}
在go语言的循环里面没有while循环和do while循环,只有唯一的一种for循环。
最简单的for循环就是在for后面什么都不写,代表一个死循环。
循环途中可以用break跳出,也可以使用经典的C循环,就是for I等于0|小于 N|加加。这中间三段,任何段都可以省略。
同时,在循环里面,可以用break或者continue来跳出或者继续循环。
Go基础语法-Swith循环
package main
import (
"fmt"
"time"
)
func main() {
a:=2
switch a {
case 1:
fmt. Println( "one")
case 2:
fmt. Println( "two")
case 3:
fmt. Println( "three" )
case 4,5:
fmt. Println("four or five" )
default:
fmt. Println( "other")
}
t := time.Now( )
switch {
case t.Hour() < 12:
fmt.Println("It's before noon" )
default:
fmt.Println("It's after noon")
}
go语言里面的switch分支结构, 看起来也c或者C++比较类似。同样的在switch后面的变量名并不是要括号。
需要注意的是:这里有个很大的点不同的是,在c++里面swich case 如果不显示加beak的话会继续往下跑完所有的Case, 而在go语言里面的话是不需要加break的。
相比C或C++, go语言里面的switch 功能更强大,可以使用任意的变量类型,甚至可以用来取代任意的if else语句。我们可以仔switch后面不加任何的变量,然后仔case里面写条件分支,这样代码相比用多个if else代码逻辑会更加的清晰。
Go语言基础语法-数组
package main
import "fmt"
func main() {
var a [5]int
a[4] = 100
fmt.Println(a[4],len(a))
b:= [5]int{1, 2,3,4,5}
fmt.Println(b)
var twoD [2][3]int
fori:=0;i<2;i++{
forj:=0;j<3;j++{
twoD[i][j] =i+j
}
}
fmt.Println("2d: ", twoD)
}
数组就是一个具有编号且长度固定的元素序列。比如这里的话是一个可以存放5个int元素的数组A。
对于一个数组,可以很方便地取特定索引的值或者往特定索引取存储值,然后也能够直接去打印一个数组。不过,在真实业务代码里面,我们很少直接使用数组,因为它长度是固定的,我们用的更多的是切片。
此外Go语言没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有宏,没有函数修饰,更没有线程局部存储。
但是,语言本身是成熟和稳定的,而且承诺保证向后兼容:用之前的Go语言编写程序可以用新版本的Go语言编译器和标准库直接构建而不需要修改代码。
Go语言有足够的类型系统以避免动态语言中那些粗心的类型错误,但是,Go语言的类型系统相比传统的强类型语言又要简洁很多。