Go数据类型 map

前言

 Go语言中提供了映射关系容器为map,其内部使用散列表(hash)实现。类似Python中的字典。

map的定义及基本操作

package main

import "fmt"

func main() {
	//定义了1个map变量,key是sring类型、value是int类型
	var m1 map[string]int
	fmt.Println(m1 == nil) //还没有初始化(没有在内存中开辟空间)
	//初始化:估算好map的容量,避免程序运行期间在扩容
	m1 = make(map[string]int, 10)
	m1["年龄"] = 18
	fmt.Println(m1)
	fmt.Println(m1["年龄"])
	//获取不存在的key
	v, ok := m1["姓名"]
	if !ok {
		fmt.Println("没有该key")
	} else {
		fmt.Println(v)
	}
	//直接获取不存在的key,返回对应类型的默认值
	fmt.Println(m1["不存在的key"])

	//遍历map的key和value
	m2 := make(map[string]string, 10)
	m2["姓名"] = "Martin"
	m2["性别"] = "男"
	for k, v := range m2 {
		fmt.Println(k, v)
	}
	//仅遍历map的keys
	for k := range m2 {
		fmt.Println(k)
	}
	//仅遍历map的values
	for _, v := range m2 {
		fmt.Println(v)
	}
	//删除map中的key
	delete(m2,"姓名")
	fmt.Println(m2)
	//删除map中不存在的key() no-option
	delete(m1,"不存在的key")
	/*
	go doc builtin.delete 查看内置函数的用法
	func delete(m map[Type]Type1, key Type)
    The delete built-in function deletes the element with the specified key
    (m[key]) from the map. If m is nil or there is no such element, delete is a
    no-op.
	*/

}

  

猜你喜欢

转载自www.cnblogs.com/sss4/p/12590944.html
今日推荐