[ Go基础 | 青训营笔记]

57 阅读3分钟

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

1.什么是go语言

1.1go语言的优点

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

2.入门go语言

2.1基础语法-Hello World

package main //表示这个文件属于main包,一个入口文件

import (
    "fmt" //导入标准库当中的fmt包,主要是用来输入输出
)

func main() {
    fmt.Println("hello world")
}

2.2基础语法-变量

声明变量总共有两种方式一种是var 变量=value(会自动匹配变量的类型,但是你也可以在变量后面显式的声明变量类型,还有一种是变量: =value,常量就是const 变量(会根据上下文自动匹配响应的类型)

package main

import "fmt"

func main() {
    var a = "xiaomao"

    var b, c int = 1, 2

    var d float64

    e := float32(d)

    fmt.Println(a, b, c, d, e)

    const s string = "xiaomao02"
    fmt.Println(s)
}

2.3基础语法-if else

  1. Go语言当中的if语句后面不需要给条件括号,如果加上,在运行前编辑器也会自动将其去掉
  2. 在Go语言当中的if语句后面要直接跟上大括号,不可以将语句写在同一行上.
package main

import "fmt"

func main() {
    if 8%2 == 0 {
       fmt.Println("8 is divisible 2")
   }

    if num := 9; num < 0 {
       fmt.Println(num, "是负数")
   } else {
       fmt.Println(num, "是正数")
   }
}

2.4基础语法-循环

  1. 在Go语言当中没有while循环,没有do...while循环,只有唯一的一种for循环,可以用break跳出循环或continue继续循环
package main

import "fmt"

func main() {
    for {
       fmt.Println("xiaomao")
       break
   }

    for j := 1; j < 9; j++ {
       fmt.Println(j)
   }

    for n := 0; n <= 10; n++ {
       if n%2 == 0 {
          continue
      }
       fmt.Println(n)
   }
}

2.5基础语法-switch

  1. Go语言中改进了switch的语法设计,case是独立的代码块,不需要通过break跳出当前case语句以此来防止执行下一个case语句。
  2. Go语言中switch...case可以使用任意的变量类型,例如字符串,结构体等等,甚至可以用来替代if..else语句。
package main

import "fmt"

func main() {
    i:=2
    switch i {
       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("other")
   }
}

2.6基础语法-数组

  1. 数组就是长度固定的数字序列,对于一个数组,我们可以很方便的去存储,提取索引上的值,不过我们在实际的开发当中,由于长度是固定的,所以我们很少使用,更多的是去使用切片.
package main

import "fmt"

func main() {
    var a[5]int
    a[4]=100
    fmt.Println(a[4],len(a))

    b:=[5]int{1,2,3,4,5}
    fmt.Println(b)

    var twoD [2][3]int
    for i:=0;i<2;i++{
       for j:=0;j<3;j++{
          twoD[i][j]=i+j
      }
   }
    fmt.Println("2d:",twoD)
}

2.7基础语法-切片

  1. 切片区别于数组,切片是一个长度可变的数组,有着更多丰富的操作,其中内部则包含三个字段:指向底层数组的指针、长度和容量

切片创建的方式有两种;一种是使用make函数来进行创建,还有就是字面量

var slice=make([]int,5,5)

但是在用make函数进行创建的时候,第二个参数必须填,第三个参数可以填或者不填写,则容量默认等于长度值。

var slice=make([]int,5,5)


var slice=make([]int,5)

切片如何增加新元素

//新增一个元素
slice=append(slice,1)
//新增多个元素
slice=append(slice,1,2)

(待补充)