GoFaster

V1

2022/12/01阅读:14主题:默认主题

Python转Go学习之路篇4-基础知识

控制结构

程序执行从本质上来说就是两种模式: 顺序和跳转

  • 顺序就是按照程序指令在存储器上的存放顺序逐条执行
  • 跳转就是遇到跳转指令就跳转到某处继续线性执行

if 语句

  1. if 语句后面的条件判断子句不需要用小括号
  2. {必须放在行尾,和 if 或 if else 放在一行
  3. if 后面可以带简单的初始化语句,分号分隔,该简单语句声明的变量作用域整个 if 语句块,包括后面的 if else 或者 else 分支
  4. go 语言没有条件运算符
  5. if 分支语句遇到 return 后直接返回
package main

import "fmt"

func main() {
 x := 1
 y := 10
 if x < y {
  fmt.Println("if简单语句执行成功")
 }
 if z := 101; z > y {
  fmt.Println("if初始化语句声明变量z")
 }
}

switch 语句

switch 语句会根据传入的参数检测并执行符合条件的分支

其他特点和 if 语句基本一致

支持 default 语句

package main

import "fmt"

func main() {
 score := 85
 switch {
 case score >= 90:
  fmt.Println("90分以上得分A")
 case score >= 80:
  fmt.Println("80分以上得分B")
 case score >= 70:
  fmt.Println("70分以上得分C")
 }
}


for 语句

for 循环语句

支持对数组、切片、字符串、map 和通道的访问

package main

import "fmt"

func funcDemo(args ...int) {
 for i := 0; i < len(args); i++ {
  fmt.Println(i, args[i])
 }
 // range 默认返回两个值,下标和值类似python的enumerate
 for index, value := range args {
  fmt.Println(index, value)
 }
 // for 循环后面为空则表示死循环
 //for {
 //
 //}

 //对于 map 类型来说,for range 遍历时,key 和 value 分别代表 map 的索引键 key 和索引对应的值,
 //一般被称为 map 的键值对,因为它们是一对一对出现的,下面的代码演示了如何遍历 map。
 m := map[string]int{
  "hello": 100,
  "world": 200,
 }
 for key, value := range m {
  fmt.Println(key, value)
 }
}
func main() {
 funcDemo(1, 2, 3)
 //fmt.Println(key, value)
}

标签和跳转

goto、break、continue

go 语言使用标签 Label 来标识一个语句的位置、用于关键字跳转

goto 用于函数的内部的跳转,需要配合标签一起使用

goto

goto Label

  • goto 只能在函数内跳转
  • goto 不能跳过内部变量声明语句,这些变量在 goto 语句的标签语句处又是可见的
  • goto 只能跳到统计作用域或者上层作用域,不能跳到内部作用域内的标签

break

用于函数内跳出 for、switch、select 语句的执行

  • 单独使用,直接跳出 for、switch、select 语句的执行
  • 配合 Label,用于跳出标签所标识的 for、switch、select 语句块的执行

continue

用于跳出 for 循环的本次迭代,跳到下一次迭代的 post 语句处执行

  • 单独使用,用于跳出 for 循环的本次迭代
  • 配合 Label,用于跳出标签标识的 for 循环的本次迭代,标签和 continue 必须在同一个函数内

return 和函数调用

分类:

后端

标签:

后端

作者介绍

GoFaster
V1