Go的语句
if语句
- 看代码理解
param := 10
if param == 10 {
fmt.Println("param == 10")
} else {
fmt.Println("param != 10")
}
- if/else是判断语句, Go的if和c++一样需要加大括号, 使用else if, 和python一样判断条件不用加小括号
- 注意: 由于Go语言的强限制, 所以else不可以另起一行, 左大括号也不可以另起一行
- Go的if可以加一个赋值/初始化语句, 类似于下面这样:
package main
import "fmt"
func main() {
param := 10
if param = 3; param == 10 {
fmt.Println("yes")
} else {
fmt.Println("no")
}
}
注:
if只可以加一个语句, 如果再写一个param1 = 3;就会报语法错误
switch语句
- 见代码:
package main
import "fmt"
func main() {
param := 1
switch param {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
default:
fmt.Println("...")
}
}
- Go的switch和c++的类似, 区别在于 —— Go之中的case默认加上了break, 如果想要执行完一个case之后不跳出switch继续执行下面的case就可以加上fallthrough
for语句
- Go语言之中没有while, 也没有do…while, 只有for和range, for和c可以说是一模一样
- Go语言没有++i, 只有i++, 见例子:
package main
import "fmt"
func main() {
sum := 0
for i := 1;i <= 100;i++ {
sum += i
}
fmt.Println("sum = ", sum)
}
range语句
- range是Go的迭代语法, 可以拿python的range, in等来类比记忆
- range 默认返回2个值, 第一个是下标, 第二个是下标对应的值, 如果只用一个变量来接收, 那么第二个返回值默认是丢弃的, 这个时候, 为了方便看, 可以使用匿名变量_来接收
package main
import "fmt"
func main() {
str := "hello"
for index, _ := range str {
fmt.Println(index)
}
}
跳转语句
- break和continue和goto语句都和c一样