Go 语言基础之map(七)

map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。

一. map 定义

Go语言中 map的定义语法如下:

map[KeyType]ValueType
// KeyType:表示键的类型。
// ValueType:表示键对应的值的类型。

map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为: …

Go 语言基础之切片(六)

Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

  • 切片是数组的一个引用,因此切片是引用类型。但自身是结构体,值拷贝传递。
  • 切片的长度可以改变,因此,切片是一个可变的数组。
  • 切片遍历方式和数组一样,可以用len()求长度。表示可用元素数量,读写操作不能超过该限制。
  • cap可以求出slice最大扩张容量,不能超出数组限制。0 <= len(slice) <= len(array),其中array是slice引用的数组。
  • 切片的定义:var 变量名 []类型,比如 var …

Go 语言基础之数组(五)

数组是同一种数据类型元素的集合。在Go语言中,数组和python列表有很大区别,它具有如下特点:

  • 数组是同一种数据类型的固定长度的序列。
  • 数组定义:var a [len]int,比如:var a [5]int,数组长度必须是常量,且是类型的组成部分。一旦定义,长度不能变。
  • 长度是数组类型的一部分,因此,var a [5]int和var a [10]int是不同的类型。
  • 数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1 …

Go 语言基础之流程控制(四)

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制

一. 条件语句if

条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。

Go语言中if条件判断的格式如下:

if 表达式1 {
    分支1 …

Go 语言基础之运算符(三)

运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

一. 算术运算符

运算符 描述
+ 相加
- …