Go基础语法 | 青训营笔记

374 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

1.go的优点

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库完善的工具链
  4. 静态链接
  5. 快速编译
  6. 跨平台
  7. 垃圾回收 so->随着框架的推广,越来越多的python服务使用golang重写,至今为止,golang已经成为内部使用率最高的编程语言

2.基础语法-Hello World

    package main
    import(
        "fmt"
    )
    func main(){
        fmt.Println("hello world")
    }
  • packet main 代表这个代码属于main包的一部分
  • fmt包是用来标准化输入输出的

3.基础语法-变量

    package main
    import(
    "fmt"
    "math"
    )
func main(){
    var a= "initial"
    var b,c int =  1,2
    var d= true
    var e float64
    f:=float32(e)
    g=a+"foo"
    fmt.Println(a,b,c,d,e,f)//initial 1 2 true 0 0
    fmt.Println(g) //initialapple
    const s string="constant"
    const h = 500800000
    const i =3e20/h
    fmt.Println(s,h,i,math.Sin(h),math.sin(i))
  • go 语言的字符串是内置类型,可以直接通过加号拼接,也能够直接用等于号去比较两个字符串
  • var就是自动推导变量
  • var b,c int指定为int类型的写法
  • 赋值是:=

4.基础语法-if else

image (1).png

  • 无括号

5.基础语法-循环

image.png

  • 没有while循环 用 for i<=3
  • 12行就是正常的for循环

6.基础语法-switch

image (2).png

  • 没有括号
  • 不用break 自动break

7.基础语法-数组

image (3).png

  • var a [5]int前半部分和c语言相同,后面的int声名类型
  • b:= [5]int{1,2,3,4,5}用[5]来声名数组长度,用int来表示类型,{}里面的内容来赋值

8.基础语法-map

    package main
    import (
    "fmt"
    )
func main() {
    s := make(map[string]int)
    s["one"] =1
    s["two"] =2
    fmt.Println(m)//map[one:1 two:2]
    fmt.PrintIn(len(m)) // 2
    fmt.PrintIn(m["one"]) // 1
    fmt.PrintIn(m["unknow"]) // 0
    r,ok:=m["unknow"]
    fmt.Println(r,ok)//0 false
    
    delete(m,"one")
    
    m2:=map[string]int{"one":1,"two":2}
    var m3 = map[stirng]int{"one":1,"two":2}
    fmt.Println(m2,m3)
  • map就是哈希表
  • 注意定义方式:s := make(map[string]int)
  • 删除delete(m,"one")
  • 如果有一个unknow的key那么就是0