Go入门基础 | 青训营

95 阅读3分钟

Go 语言结构

从 Hello World 开始

Go语言的基础组成部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句
  • 表达式
  • 注释

开始尝试输出 Hello World

在VsCode编辑器中写入以下代码

package main

import "fmt"

func main(){
    fmt.Println("Hello World");
}

执行 Go 程序

打开VsCode的命令行终端,进入到hello.go所在的目录,执行命令go run hello.go来执行代码。 这是最简单的一种执行方式,我们还可以使用go build hello.go命令来生成对应的二进制文件,然后执行对应的exe文件。

Go 数据类型

mindmap
      数据类型 
          布尔型
          数字类型
              整型
              浮点型
          字符串类型
          派生类型
              指针
              数组
              结构体
              Channel
              函数
              切片
              接口
              Map
    

Go 变量定义

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的标准格式: var identifier type
推荐使用: identifier := value
常量定义: const identifier [type] = value

条件语句

经典的if-else语句和switch语句以及select语句

循环语句

Go只有一种循环语句,for循环,格式和C是一样的。

控制语句

  • break,经常用于中断当前 for 循环或跳出 switch 语句
  • continue,跳过当前循环的剩余语句,然后继续进行下一轮循环
  • goto,将控制转移到被标记的语句

数组和切片

区别: 数组是定长的,切片是不定长。切片可以动态添加元素,数组不可以。切片可以动态扩容,而数组不能。

数组

声明数组:var arrayName [size]dataType

切片(slice)

声明切片:var identifier []type
切片不需要事先说明长度 也可以使用make()函数来创建切片:

var slice []type = make([]type, len)
可以简写为:
slice := make([]type, len)

len() 和 cap() 函数

切片是可索引的,并且可以由 len() 方法获取长度。
切片提供了计算容量的方法 cap() 可以测量切片最长可以达到多少。

Map

  • Map 是一种无序的键值对的集合。
  • Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
  • Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,遍历 Map 时返回的键值对的顺序是不确定的。
  • 在获取 Map 的值时,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 ""。
  • Map 是引用类型,如果将一个 Map 传递给一个函数或赋值给另一个变量,它们都指向同一个底层数据结构,因此对 Map 的修改会影响到所有引用它的变量。

Range

Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。

总结

语言都是相似的,都逃不过变量、函数、各种语句。学会一种语言的语法,再去学习其他语言就会很轻松。