Golang 基础赋能(二)

go 语⾔循环语句

在 go 语⾔中不⽀持 while 语句,它只有 for 循环,表达式如下
  1. 1.for init; condition; post {
  2. }
  3. ex:
  4. for i := 0; i <= 10; i++ {
  5. sum += i
  6. }
  7. 2.for condition {
  8. }
  9. ex:
  10. for ; sum <= 10; {
  11. sum += sum
  12. }
  13. ps:表达式中的initpost都是可以省略的,;也可以省略
  14. 如何表达⽆限循环
  15. for true {
  16. sum += sum
  17. }

循环控制语句

如何在循环体内控制整个循环,在 go 中提供了 3 个控制语句
  1. 1.break语句 -- ⽤于中断当前for循环或跳出switch语句
  2. ex
  3. for i := 0; i < 5; i++ {
  4. if i == 3 {
  5. break // 当 i 等于 3 时跳出循环
  6. }
  7. fmt.Println(i)
  8. }
  9. 2.continue语句 -- ⽤于跳过当前循环,进⼊到下⼀次循环中
  10. ex
  11. for a < 5 {
  12. if a == 3 {
  13. /* 跳过此次循环 */
  14. a = a + 1;
  15. continue;
  16. }
  17. fmt.Printf("a 的值为 : %d\n", a);
  18. a++;
  19. }
  20. 3.goto语句 -- 跳到指定⾏
  21. ex
  22. var a int = 1
  23. /* 循环 */
  24. for a < 5 {
  25. if a == 3 {
  26. /* 跳过迭代 */
  27. a = a + 1
  28. goto Test
  29. }
  30. fmt.Printf("a的值为 : %d\n", a)
  31. a++
  32. }
  33. Test:
  34. fmt.Println(a)

函数

如同其他的语⾔有函数⼀样, go ⾃然也拥有函数的概念,接下来我们看⼀下在 golang 中式如何定义函数的
  1. 1.函数定义
  2. 表达式如下:
  3. func function_name(参数1,参数2 类型) [返回类型] {
  4. 函数内容
  5. }
  6. ex
  7. func max(num1, num2 int) int {
  8. /* 声明局部变量 */
  9. var result int
  10. if (num1 > num2) {
  11. result = num1
  12. } else {
  13. result = num2
  14. }
  15. return result
  16. }
  17. python这些动态语⾔不同, go是静态语⾔,因此需要在传参数的时候标记参数的类型,并且如果该函数中有返回
  18. 值,同时还需要表示出返回值的类型
  19. 2.函数调⽤
  20. func main() {
  21. /* 定义局部变量 */
  22. var a int = 100
  23. var b int = 200
  24. /* 调⽤函数并返回最⼤值 */
  25. ret := max(a, b)
  26. fmt.Printf( "最⼤值是 : %d\n", ret )
  27. }
  28. /* 函数返回两个数的最⼤值 */
  29. func max(num1, num2 int) int {
  30. /* 定义局部变量 */
  31. var result int
  32. if (num1 > num2) {
  33. result = num1
  34. } else {
  35. result = num2
  36. }
  37. return result
  38. }

变量作⽤域

go 语⾔与中其他语⾔⼀样,提供了内置的错误异常机制,并针对错误异常机制,提供了处理错误的⽅式
  1. go语⾔中的异常可以划分到类型中,他和int string等类型是⼀个级别的,所以我们可以经常看到在golang的那些
  2. 程序中,会返回⼀个error类型的返回值,这就是go语⾔中的异常
  3. 1.如何创建⼀个异常
  4. //go语⾔作为⼀个流⾏语⾔,⾃然具有让⽤户⾃定义异常的⽅式,具体⽅式如下所示
  5. errors.New("test")
  6. 2.异常处理
  7. ex
  8. 1)写⼀个函数,并返回⼀个异常
  9. func Sqrt(f float64) (float64, error) {
  10. if f < 0 {
  11. //返回⼀个异常
  12. return 0, errors.New("test")
  13. }
  14. }
  15. 2)接受异常,并进⾏处理
  16. result, err:= Sqrt(-1)
  17. //判断异常是否为空,如果异常为空,返回的值⼀般是nil
  18. if err != nil {
  19. fmt.Println(err)
  20. }
  21. 如上所示,其实在golang中的异常处理⾮常简单,因为它可以简单理解成⼀个对象,因此如何处理完全是在⽤户⾃⼰
  22. 的⼿中,你调⽤⼀个函数,该函数返回异常之后,⽤户可以选择在这个异常之后进⾏各种处理