Go 基础语法01 | 青训营笔记

60 阅读2分钟

1 Hello World

  
  package main
  ​
  import (
      "fmt"
  )
  ​
  func main()  {
      fmt.Println("hello,word")
  }

2 变量

  • go语言是—门强类型语言每—个变量都有它自己的变量类型

  • 常见的变量类型包括字符串、整数、浮点型、布尔型

  • go语言变量的声明:

    • 通过var name string =""这种方式来声明变量,声明变量时自动推导变量的类型
    • 使用变量冒号 := 等于值。
  • 常量:

    • 把var改成const
    • go语言常量没有确定的类型,会自动确定类型
  
  package main
  ​
  import(
      "fmt"
      "math"
  )
  ​
  func main(){
      var a = "hello" // 字符串
      var b,c int = 1,2 // 整数
      var d = true // bool
      var e float64 // 浮点数
      f := float32(e)
      g := a + "world"
      fmt.Println(a,b,c,d,e,f) // hello 1 2 true 0 0
      fmt.Println(g) // helloworldconst s string = "hello"
      const h = 50000000
      const i = 3e20/h
      fmt.Println(s,h,i,math.Sin(h),math.Sin(i)) // hello 50000000 6e+12 0.8256467432733234 0.7202453319313744
  }

3 if...else...

if后面没有(),必须有{}

关键字 if 和 else 之后的左大括号{必须和关键字在同一行,如果你使用了 else if 结构,则前段代码块的右大括号}必须和 else if 关键字在同一行

  
  package main
  ​
  import "fmt"
  ​
  ​
  func main(){
      var num = 7
      if num%2 == 0{
          fmt.Println(num,"是偶数")
      }else{
          fmt.Println(num,"是奇数")
      }
  ​
      if 8%4==0{
          fmt.Println("8可以被4整除")
      }
  ​
      if num:=9;num<0{
          fmt.Println(num,"是负数")
      }else if num<10{
          fmt.Println(num,"是个位数")
      }else{
          fmt.Println(num,"是多位数")
      }
      
      // 7 是奇数
      // 8可以被4整除
      // 9 是个位数
  }

4 循环

go里没有while循环、do while循环,只有for循环

和 C 语言的 for 一样:for init; condition; post { }

和 C 的 while 一样:for condition { }

和 C 的 for(;;) 一样:for { }

  
  package main
  ​
  import "fmt"func main() {
      i :=1
      for {
          fmt.Println("loop")
          break
      }
  ​
      for j:=7;j<9;j++{
          fmt.Println(j)
      }
  ​
      for n:=0;n<5;n++ {
          if n%2==0{
              continue
          }
          fmt.Println(n)
      }
  ​
      for i<=3 {
          fmt.Println(i)
          i=i+1
      }
  }
  ​
  // loop
  // 7
  // 8
  // 1
  // 3
  // 1
  // 2
  // 3

5 switch

go语言不需要break,会自动跳出

可以在switch后面不加任何变量,在case里写条件分支

  • switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止
  • switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面不需要加 break
  • switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果需要执行后面的 case,可以使用 fallthrough
  
  package main
  ​
  import(
      "fmt"
      "time"
  )
  ​
  func main(){
      a := 2
      switch a{
      case 1:
          fmt.Println("one")
      case 2:
          fmt.Println("two")
      case 3:
          fmt.Println("three")
      case 4,5:
          fmt.Println("four or five")
      default:
          fmt.Println("others")
      }
  ​
      t := time.Now()
      switch{
      case t.Hour()<12:
          fmt.Println("12点之前")
      default:
          fmt.Println("12点之后")
      }
  }
  ​
  // two
  // 12点之后