Golang入门笔记(最后一章 17 封版)—— 映射map

        映射 (map) 作为一个常用的类型,Go语言已为我们开发者内置了map类型。

基本语法:

var 变量名 map [keyT类型] valueT类型

        这里T就是一个类型代表(我这么写,有点受到了Java的泛型影响),key的类型通常为string或int类型,但slice切片类型,map映射类型 及 function函数类型 是无法作为key类型的。另外,map的key和value都是无序的,或许可能因为go设计出的map的key应该是散列的原因。(边学边猜不违法,错了无妨,改就是了。)

map的三种创建方式:

方式1:先用定义一个map ,初始默认值为nil,然后make函数赋值,然后再通过逐一操作key,给其初始化添加条目。

	var a map[int]string //初始默认值为nil
	fmt.Println(nil == a)
	a = make(map[int]string, 2) //初始分配10个entry条目容量capactiy大小,非实际条目数量。
	a[0] = "0.."
	a[1] = "1.."
	a[2] = "2.."
	a[3] = "3.."
	fmt.Println(a)

方式2:自动类型推断,也可以不传入初始条目容量

	//方式2:类型推断,可不用传入初始条目容量大小。
	a := make(map[int]string, 2)
	fmt.Println(nil == a) // false
	fmt.Println(len(a))   // len = 0
	a[0] = "0.."
	a[1] = "1.."
	a[2] = "2.."
	a[3] = "3.."
	fmt.Println(a)

方式3:定义声明并同时初始化。(最后的条目3...末尾的逗号不可省略。)

	var c map[int]string = map[int]string{
		1: "1..",
		2: "2..",
		3: "3..", //(最后的条目3...末尾的逗号不可省略。)
	}

map 的增删改查 及遍历

package main

import (
	"fmt"
)

func main() {

	var m map[int]string = map[int]string{
		1: "1..",
		2: "2..",
		3: "3..",
	}
	//增
	m[4] = "4...add.."
	//删        从m中,删除key=1的条目entry
	delete(m, 1)
	fmt.Println("after delete, 映射 m =>", m)
	//改
	m[4] = "4.."
	//查
	value, flag := m[4]
	fmt.Println(value)
	fmt.Println(flag)

	//查看map实际元素数量。
	fmt.Println("map的实际元素数量 => ", len(m))

	//遍历 map的遍历唯一方式 for range 遍历。
	for k, v := range m {
		println(k, ":", v)
	}

	//清空
	m = make(map[int]string)

}

        至此GO语言入门系列帖子全部写完了,自从2022年11月16号开始写,写到2022年11月19日入门封版 ,以一个很粗暴的方式,把Go语言入门了一遍,一共17篇帖子是这段时间的学习和心得的笔记,希望能帮助到自己的同时也能帮助到大家。愿这这些努力,都没有白费;愿将来的自己感谢今日的自己。

2022年11月16日 第一篇 helloworld 

2022年11月19日 最后一篇 入门封版

        加油,Go Go!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值