6.数组、切片和映射

使用数组

var chesses [2]string

//数组赋值
chesses[0] = "Mariolles"

//打印数组元素
fmt.Println(chesses[0])
  • 使用关键字var声明一个名为chesses的变量
  • 将一个长度为2的数组赋给这个变量
  • 这个数组的类型为字符串
package main

import "fmt"

func main(){
    var a [2]int
    a[0]=1
    a[1]=2

    //遍历数组
    for _,n := range a{
        fmt.Println(n)
    }
}

使用切片

由于数组当中无法直接添加元素,然而切片比数组更加灵活,可以在切片中添加和删除元素,还可赋值切片中的元素,可将切片视为轻量级的数组包装器

//声明切片
var cheeses = make([]string,2)
  • 使用var关键字声明一个名为cheeses的变量
  • 在等号右边,使用GO内置函数make创建一个切片,其中第一个参数为数据类型,而第二个参数为长度,在这里,创建的切片包含两个字符串元素
  • 将切片赋值给变量cheeses
//声明切片
var cheeses = make([]string,2)

//给切片赋值
cheeses[0] = "hello"
cheeses[1] = "world"

添加元素

使用内置函数append()

var a = make([]string,1)
a[0]="hello"
a = append(a,"world")

append()函数是一个不定参数的函数,因此,我们可以给它添加很多值

package main
import "fmt"
func main(){
    var a=make([]int,2)
    a[0]=1
    a[1]=2
    a = append(a,3,4)

    for _,n := range a{
        fmt.Println(n)
    }
}
// 1
// 2
// 3
// 4

删除元素

//删除索引为2的元素
a = append(a[:2],a[2+1:]...)
var a= make([]int ,3)
a[0]=1
a[1]=2
a[2]=3

for _,n := range a{
    fmt.Println(n)
}

a = append(a[:2],a[2+1:]...)

for _,n := range a{
    fmt.Println(n)
}

复制切片

package main

import "fmt"

func main(){
    var a= make([]string ,3)
    for i,_ := range a{
        a[i]="hello"
    }

    //对切片进行拷贝
    copy(b,a)

    for _,n := range b{
        fmt.Println(n)
    }
}

使用映射

映射是通过键来访问的无序元素编组,在其他编程语言中,映射也被称为关联数组、字典或散列

var players = make(map[string] int)
  • 关键字var声明了一个名为players的变量
  • 在等号右边,使用GO语言内置的make创建了一个映射,其键的类型为字符串,而值得类型为整数
  • 将这个空映射赋给了变量players
//添加键值对
var players = make(map[string] int)
players["cook"] =32
players["bairstow"] =27

案例

package main
import "fmt"
func main(){
    //添加键值对
    var players = make(map[string] int)
    players["cook"] =32
    players["bairstow"] =27

    for i,n := range players{
        fmt.Println(i,n)
    }
}
// cook 32
// bairstow 27
//从映射中删除元素
delete(players,"cook")
© 版权声明
THE END
喜欢就支持以下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容