go语言上手--基础语法 | 青训营笔记

108 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

一、hello world的写法

package main
import(
    "fmt"
)
func main(){
    fmt.Println("hello world")
}
  1. 输出语句的写法:通过调用标准库中的fmt包中的Println函数来输出

二、变量与常量的定义与声明

(一)变量

  1. 通过var name (变量类型) = value来定义,其中name与value可以是多个值(一一对应并用逗号分隔)
  2. 通过name := value来定义,其中value可以是强制转化类型表达式,例如f := float32(e)

(二)常量

  1. 只需要将变量中的关键字var变成const
  2. go语言中的常量没有确定的类型,会根据上下文来自动确定类型

三、分支语句结构

(一)if-else结构

package main

import "fmt"

func main() {
    if 7%2 == 0{
        fmt.Println("7 is even")
    }else{
        fmt.Println("7 is odd")
    }
}
  1. if结构
  2. if-else结构
  3. if-else if-else结构 值得注意的是,if后面的表达式没有小括号,并且无论后面的语句是否是多条,都需要加大括号

(二)switch-case语句

package main

import{ 
    "fmt"
    "time"
}

func main() {
    a := 2
    switch a {
        case 1:
            fmt.Println("one")
        case 2:
            fmt.Println("two")
        case 3,4:
            fmt.Println("three or four")
        default:
            fmt.Println("other")
    }
    b := time.Now()
    switch  {
        case t.Hour() == 1:
            fmt.Println("one")
        case t.Hour() == 2:
            fmt.Println("two")
        case t.Hour() == 3 || t.Hour() == 4:
            fmt.Println("three or four")
        default:
            fmt.Println("other")
    }
}
  1. 条件表达式既可以紧跟着switch处写,同时也可以在case处写
  2. 当条件写到case语句处时,与if-else语句形成等价替换

四、循环语句结构

package main

import "fmt"

func main() {
    i := 1
    for j := 7;j < 9;j ++{
        fmt.Println(j)
    }
}
  1. 只有这一种类型的循环,即没有while/do-while循环
  2. 注意for后面无小括号

五、数组与切片

(一)数组:长度固定的

  1. 一维定长数组声明var a[5]int
  2. 一维定长数组声明并赋值 a := [5]int{1,2,3,4,5}
  3. 二维定长数组声明var twoD [2][3]int

(二)切片:长度可变的

  1. 采用make声明一个切片s := make([]string,3)
  2. 采用append来添加元素s = append(s,"d")

六、哈希map

  1. 采用make声明一个空map,并确定key-value数据类型m := make(map[string]int)
  2. 删除特定元素delete(hashmap,key)
  3. 哈希表元素遍历for k,v := range m{...}