go基础

Posted alin_qu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go基础相关的知识,希望对你有一定的参考价值。

for

  • 只有这一种循环结构
  • 初始化语句:在第一次迭代前执行
  • 条件表达式:在每次迭代前求值
  • 后置语句:在每次迭代的结尾执行

例子

sum := 0
for i:=0; i<=100; i++{
    sum += i
}

只保留条件表达式

sum := 0
i := 1

for ; i <= 100; {
    sum += i
    i++
}

无限循环

for {
}

if

  • 可以在条件表达前执行一个简短的语句
  • 该语句声明的变量作用域仅在 if 之内

例子

func square(v int) int {
    return v * v
}

func main(){
    x := 10

    if v := square(x); v < 100{
        fmt.Println("less than 100")
    }else{
        fmt.Println("great than or equal to 100")
    }
}

switch

  • Go 类似if 也可以运行一个条件表达式
  • Go 自动提供了在这些语言中每个 case 后面所需的 break 语句
  • Go 的switch 的 case 无需为常量,且取值不必为整数。
  • case 语句从上到下顺次执行,直到匹配成功时停止
  • 没有条件的 switch 同 switch true 一样

例子1

switch os := runtime.GOOS;os {
case "linux":
    fmt.Println("linux os")
case "windows":
    fmt.Println("windows os")
default:
    fmt.Println("other os")
}

例子2

v := rand.Int()

switch v%2 {
    case 0+0:
        fmt.Println("even number")
    case 0+1:
        fmt.Println("odd number")
    default:
        fmt.Println("error number")
}

例子3

t := time.Now()

switch  {
case t.Hour() < 12:
    fmt.Println("Good Morning!")
case t.Hour() < 17:
    fmt.Println("Good Afternoon")
default:
    fmt.Println("Good Evening")
}

defer

  • 推迟的函数调用会被压入一个栈中。 当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。

例子

for i:=0; i < 10; i++ {
    defer fmt.Println(i)
}

以上是关于go基础的主要内容,如果未能解决你的问题,请参考以下文章

你知道的Go切片扩容机制可能是错的

golang代码片段(摘抄)

[vscode]--HTML代码片段(基础版,reactvuejquery)

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

Go语言基础语法(一)

Go基础--笔记