2022-4-13 实习Day13

1、系统测试,找bug,编写错误文档 –2小时 20%
2、SW系统交易模块全范围细化测试,报错文档编写 –3小时 100%
3、贸易金融事业部接口规范文档阅读 –1小时 5%

Golang编程学习(part 8)

1、程序流程控制

③ 循环控制:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for 循环变量初始化; 循环条件; 循环变量迭代 {

//循环操作(语句)

}



for 循环判断条件 {

//循环执行语句

}


下面的写法等价for ; ; {} 是一个无限循环, 通常需要配合break语句使用
for {

//循环执行语句

}

1
2
3
4
5
6
7
8
9
10
11
//字符串遍历方式-传统方式
var str string = "hello"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i]) //使用下标
}

//字符串遍历方式-for-range
var str1 string = "GolangIsVeryGood"
for _, v := range str1 {
fmt.Printf("%c \n", v)
}

2、循环遍历的细节讨论

如果我们的字符串含有中文,那么传统的遍历字符串方式,就是错误,会出现乱码。原因是传统的对字符串的遍历是按照字节来遍历,而一个汉字在UTF-8编码中对应的是3个字节。

如何解决这样的问题?需要将str转成 []rune切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var str string = "GolangIsVeryGood语言不错"
for i := 0; i < len(str); i++ {
fmt.Printf("%c", str[i]) //GolangIsVeryGood语言不错
}

//用for-range遍历方式是按照字符方式来遍历的,如果字符串有中文也是可以的。
fmt.Println()
for _, v := range str {
fmt.Printf("%c", v) //GolangIsVeryGood语言不错
}

//使用[]rune方式来遍历
fmt.Println()
str1 := []rune(str) //将str强转为[]rune切片
for i := 0; i < len(str1); i++ {
fmt.Printf("%c", str1[i]) //GolangIsVeryGood语言不错
}

3、while和do..while的实现

Go语言没有while和do..while语法,这一点要注意,但是我们可以通过for循环来实现其使用效果。
① while的实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for 条件表达式(i := 0; i < 10;) {
//循环操作(语句)fmt.Println(i)
//循环变量迭代 i++
}

//循环变量初始化
i := 0
//for循环是一个无限循环
for {
if 循环条件表达式(i > 10) {
break
}
//循环操作(语句)
//循环变量迭代
fmt.Println(i)
i++
}
② do..while的实现
1
2
3
4
5
6
7
8
9
10
11
12
//循环变量初始化
i := 0
//for循环是一个无限循环
for {
//循环操作(语句)
//循环变量迭代
fmt.Println(i)
i++
if 循环条件表达式(i > 10) {
break
}
}