关于Golang面试宝典

最近几年,Go的热度持续飙升,国内外很多大公司都在大规模的使用Go。Google是Go语言诞生的地方,其他公司如Facebook、腾讯、阿里、字节跳动、百度、京东、小米等都在拥抱和转向Go。Go语言的开源项目也非常多,如kubernetes、docker、etcd。

随着市场对Go语言人才需求的增长,很多开发者都投入了Go语言的怀抱。本系列文章将以第一视角与大家一同开始Golang的面试之路,希望大家能够有所收获,拿下心仪的offer。

Go语言数组知识点总结

数组可以存放多个同一类型数据。在Go语言中,数组是值类型。

初始化一个数组

var numArray1 [3]int = [3]int{1, 2, 3}

var numArray2 = [3]int{1, 2, 3}

var numArray3 = [...]int{1, 2, 3}

// 指定下标的元素值
var numArray4 = [3]int{2: 3}

Go语言中数组内存是连续的,数组首元素的地址为数组的地址,数组中各个元素的地址间隔由数组储存的数据类型决定。

遍历数组

方式1

arr := [3]int{1, 2, 3}

for index, value := range arr {
    fmt.Printf("index: %d, value: %v", index, value)
}

方式2

arr := [3]int{1, 2, 3}

for i := 0; i < len(arr); i++ {
    fmt.Printf("index: %d, value: %v", i, arr[i])
}

数组注意事项

  1. 数组是多个相同类型数据的集合,一旦声明/定义后,长度是固定的,不能动态变化
  2. 数组中的元素可以是任何数据,包括值类型和引用类型
  3. 数组创建后,如果没有赋值,则默认值为该类型数据的默认值
  4. Go语言中数组为值类型,默认情况下是值传递,如果想要在函数中修改原来的数组,可使用指针方式引用传递