go语言基础(02)| 青训营笔记

88 阅读2分钟

基础语法02

1.基础语法-输入输出

go的标准输入输出

os包 类型:*File

  • Stdin - 标准输入
  • Stdout - 标准输出
  • Stderr - 标准错误

1. 输出

  • 最常用也是最推荐的 调用fmt包下的Println函数: fmt.Println("Hello 世界!")

  • 使用内置函数println: println("Hello 世界!")

  • 调用os包: os.Stdout.WriteString("Hello 世界!")

  • 格式化:golang中文文档-输入输出#格式化

2. 输入

// 扫描从os.Stdin读入的文本,根据空格分隔,换行也被当作空格
func Scan(a ...any) (n int, err error) 

// 与Scan类似,但是遇到换行停止扫描
func Scanln(a ...any) (n int, err error)

// 根据格式化的字符串扫描
func Scanf(format string, a ...any) (n int, err error)
  • 用法:感觉和C语言很像
func main() {
   var s, s2, s3 string
   scanf, err := fmt.Scanf("%s %s \n %s", &s, &s2, &s3)
   if err != nil {
      fmt.Println(scanf, err)
   }
   fmt.Println(s)
   fmt.Println(s2)
   fmt.Println(s3)
}

2.基础语法-流程控制

  1. 条件控制
  • if else else if

if后可以包含一些简单的语句,但必须是bool类型

func main() {
   a, b := 1, 2
   if a > b {
      b++
   } else {
      a++
   }

    if x := 1 + 1; x > 2 {
        fmt.Println(x)
    }
}
  • switch

语句格式与各种语言都类似,不做赘述

switch expr {
   case case1:
      statement1
   case case2:
      statement2
   default:
      default statement
}

switch true{
//...
}
可以用
switch{
//...
}代替
  1. 循环控制
  • for基本用法:
func main {
   for i := 0 i <= 20; i++ {
      fmt.Println(i)
   }

    //可以同时初始化多个变量,但是不能有多个post statement
    for x, y := 1, 2; x < 100 || y < 1000; x++ {
        fmt.Println(i, j)
    }
}

  • 死循环
for { 
   //...
}
  • 当成while用:
num := 1
   for num < 100 {
      num *= 2
   }
  • for range

    • 语句格式
      //index为可迭代数据结构的索引,value则是对应索引下的值
      for index, value := range iterable {
    }
    
    • 示例
      func main() {
         sequence := "hello world"
         for index, value := range sequence {
            fmt.Println(index, value)
         }
      }
    
  • break:终止最内层循环

  • continue:跳过最内层循环的本次迭代