Go学习笔记
条件和循环
for循环
- 与其他主要编程语言的差异,go仅支持循环关键字for
while 条件循环
while < 5
n := 0
for n < 5 {
n++
fmt.Println(n)
}
while 无限循环
while(true)
n := 0
for {
...
}
test code
package loop_test
import "testing"
func TestWhileLoop(t *testing.T){
n := 0
for n < 5{
t.Log(n)
n++
}
}
if 条件
与其他主要编程语言的差异
- condition 表达式结果必须是布尔值bool
- 支持变量赋值
if var declaration; condition {
// code to executed if the condition is true
}
package condition_test
import "testing"
func TestIfMultiSec(t *testing.T){
if a := 1 == 1; a{
t.Log("1==1")
}
}
func TestIfMultiSec1(t *testing.T){
if v,err := someFun(); err==nil{
t.Log("1==1")
}else{
t.Log("error")
}
}
switch 条件
与其他主要编程语言的差异
- 条件表达式不限制为常量或者整数;
- 单个 case 中,可以出现多个结果选项,使用逗号分隔; 与 C 语言等规则相反,Go 语言不需要用break 来明确推出一个
case; - 可以不设定 switch 之后的条件表达式,在次情况下,整个 switch 结构与多个 if…else…的逻辑作用等同
func TestSwitchMultiCase(t *testing.T){
for i:=0;i<5;i++{
switch i{
case 0,2:
t.Log("Even")
case 1,3:
t.Log("Odd")
default:
t.Log("it is not 0-3")
}
}
}
func TestSwitchMultiCondition(t *testing.T){
for i:=0;i<5;i++{
switch {
case i%2 == 0:
t.Log("Even")
case i%2 == 1:
t.Log("Odd")
default:
t.Log("it is not 0-3")
}
}
}