package main

import "fmt"

/*
映射(map)是键值对(key-value)数据的集合
根据键key可以快速检索值value
键值的类型可以是任意的,key使用string的时候最多
*/ //创建和访问键值
func main051() {
//定义string为键int为值的映射,用于存储分数
//var scoreMap map[string]int = map[string]int{}
//var scoreMap = map[string]int{}
//scoreMap := map[string]int{} ////没有指定长度,长度为0
scoreMap := make(map[string]int)
////scoreMap := make(map[string]int,2) //添加键值对数据
scoreMap["张全蛋"] = 59
scoreMap["穆铁柱"] = 63
scoreMap["张半蛋"] = 99 //长度取决于键值对的个数
fmt.Println("映射的长度是", len(scoreMap))//3
fmt.Println(scoreMap)// //根据键访问值
fmt.Println("张半蛋的成绩是", scoreMap["张半蛋"])//99
fmt.Println("张全蛋的成绩是", scoreMap["张全蛋"])//59
var name = "穆铁柱"
fmt.Println("穆铁柱的成绩是", scoreMap[name])//63
scoreMap["穆铁柱"] = 7
fmt.Println("穆铁柱的成绩是", scoreMap["穆铁柱"])//7 //访问并不存在的键
score := scoreMap["西门志"]
fmt.Println("西门志的成绩是", score)//0 } //带校验的访问
func main052() {
scoreMap := make(map[string]int)
scoreMap["张全蛋"] = 59
scoreMap["穆铁柱"] = 63
scoreMap["张半蛋"] = 99 //带校验地访问键值
score, ok := scoreMap["穆铁柱"]
fmt.Println(score, ok) //63,true true代表有穆铁柱这个键 score, ok = scoreMap["西门志"]
fmt.Println(score, ok) //0,false false代表查询的键西门庄并不存在
/*
if ok == true 还可以写作 if ok
if ok == false 还可以写作 if !ok
*/
//if ok == true {
// fmt.Println("西门志的成绩是", score)
//} else {
// fmt.Println("查你妹,没有这个卵人")
//} if score,ok := scoreMap["你妹"];ok {
fmt.Println("你妹的成绩是", score)
}else{
fmt.Println("没有你妹这个卵人")
}
} /*复习数组和切片的遍历*/
func main053() {
//arr := [...]int{3, 1, 4, 1, 5}
slice := make([]int,5)
slice = append(slice, 1, 2, 3, 4, 5) //同时遍历下标和对应的值
//for i,x := range slice{
// fmt.Println(i,x)
//} //只遍历下标
for i := range slice{
fmt.Println(i)
}
} /*map初始化时必须赋初始值,否则为nil-map(是不能添加键值对的)*/
func main054() {
//var tempMap map[string]float64//nil map 空映射,不能向其中添加键值
var tempMap map[string]float64 = map[string]float64{}//没有内容的map
fmt.Println("tempMap=",tempMap) tempMap["你妹"]=666
fmt.Println("tempMap=",tempMap)
} //遍历
func main055() {
scoreMap := make(map[string]int)
scoreMap["张全蛋"] = 59
scoreMap["穆铁柱"] = 63
scoreMap["张半蛋"] = 99 ////遍历key和value
//for key, value := range scoreMap {
// //fmt.Printf("scoreMap[%s]=%d\n", key, value)
// fmt.Println(key,value)
//} //遍历key
for key := range scoreMap {
fmt.Println(key,scoreMap[key])
}
}

  

GO语言复合类型04---映射的更多相关文章

  1. GO语言复合类型03---切片

    切片相当于长度可以动态扩张的数组 array[start:end]从数组身上截取下标为[start,end)片段,形成切片start代表开始下标,不写默认代表从头开始切end代表结束下标(本身不被包含 ...

  2. GO语言复合类型02---数组

    package main import "fmt" /* 固定长度.固定类型的数据容器 */ /*数组的声明*/ func main031() { //var array [5]i ...

  3. GO语言复合类型01---指针

    package main /* %T 类型占位符 %v 值占位符 %p 地址(指针)占位符,只有地址才能替换%p &value 对值取地址 *addr 对地址取值 **int 指向int型指针 ...

  4. GO语言复合类型05---递归

    package main import ( "fmt" "time" ) /* ·递归就是自己调自己 ·递归一定要有终止条件(否则就是无限死循环) */ /*使 ...

  5. 带你学够浪:Go语言基础系列 - 8分钟学复合类型

    ★ 文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) " 对于一般的语言使用者来说 ,20% ...

  6. go语言 类型:基础类型和复合类型

    Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...

  7. Python基础:04映射类型

    字典是Python语言中唯一的映射类型.一个字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象.字典中的数据是无序排列的. 映射类型也可被称做哈希表,哈希表的算法是获取键,对键执行一 ...

  8. C语言中的复合类型

    复合类型 一.掌握的类型 1. 指针数组 int * arr[10]; //arr是一个数组,有10个元素,每个元素都是一个指针,即arr是一个指针数组 int a,b,c,d; arr[0] = & ...

  9. 可遇不可求的Question之MySqlClient的Guid 类型的映射篇

    关于 Guid 类型的映射 MySql 没有原生的 Guid 类型,一般使用 binary(16) 或者 char(36) 这两个类型.早期版本的 Connector/Net 将 binary(16) ...

随机推荐

  1. 基于MATLAB的手写公式识别(1)

    基于MATLAB的手写公式识别 reason:课程要求以及对MATLAB强大生命力的探索欲望: plan date:2021/3/28-2021/4/12 plan: 进行材料搜集和思路整理: 在已知 ...

  2. 12- winmerge讲解

    WinMerge是一款运行于Windows系统下的免费开源的文件比较/合并的工具,使用它可以非常方便的比较多个文档内容设置是文件夹与文件夹之间的差异.适合程序员或者经常撰写文稿的朋友使用.

  3. lumen Rest API 起步

    lumen Rest API 起步 修改项目文件 .env DB_DATABASE=<数据库名> DB_USERNAME=<数据库用户名> DB_PASSWORD=<数据 ...

  4. 【Springboot】Springboot监听器Demo

    /** * @author: yq * @date: 2020/8/31 0:01 * @description 自定义事件 */ @Data public class MyEvent extends ...

  5. 一份释放root文件的脚本文件

    #!/system/bin/sh MYDIR=$3 ARGS=$4 SU=$MYDIR/au SUPOLICY=$MYDIR/supolicy BUSYBOX=$MYDIR/busybox TOOLB ...

  6. 路由器逆向分析------binwalk工具的详细使用说明

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/66971242 一.binwalk工具的基本用法介绍 1.获取帮助信息 $ binw ...

  7. Caddy-基于go的微型serve用来做反向代理和Gateway

    1.简单配置 2.go实现,直接一个二进制包,没依赖. 3.默认全站https 常用 反向代理,封装多端口gateway 使用:启动直接执行二进制文件 caddy 就行 根据输出信息 直接https: ...

  8. 分解uber依赖注入库dig-源码分析

    上一篇帖子 分解uber依赖注入库dig-使用篇 把如何使用dig进行代码示例说明,这篇帖子分析dig的源码,看他是如何实现依赖注入的. dig实现的中心思想:所有传入Provide的函数必须要有除e ...

  9. 插入排序——Python实现

    插入排序Python实现 # -*- coding: utf-8 -*- # @Time : 2019/10/28 20:47 # @Author : yuzhou_1shu # @Email : y ...

  10. Dubbo原理剖析 之 @DubboReference.version设置为*

    原文链接 Dubbo原理剖析 之 @DubboReference.version设置为* 1 背景 Dubbo在消费端提供了一个功能,即将消费者的版本号指定为*,那么不管服务端的接口版本是啥,都可以调 ...