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])
}
}

  

最新文章

  1. dbca静默建库和删除库
  2. xml解析方法总结
  3. CCF 201312-2 ISBN号码 (水题)
  4. Maven仓库详解
  5. Stitch Fix 融资1200万美元,又一个时尚创业的哈佛女MBA |华丽志
  6. sqlserver-根据2张表的id更新其他列值
  7. 新生命组件XAgent使用心得
  8. [基础常识]申请免费SSL证书 - 阿里云云盾证书 - Digicert+Symantec 免费型DV SSL
  9. WebService技术简介
  10. go语言调度器源代码情景分析之五:汇编指令
  11. 转摘Linux命令工作中常用总结
  12. 手动创建Oracle实例
  13. Spring Boot 初识
  14. canvas绘图在手机上边缘粗糙
  15. call、apply、bind三者的区别
  16. shell 命令 --ps aux | grep
  17. 深入理解Git - 一切皆commit
  18. CentOS7.1.x+Druid 0.12 集群配置
  19. 17、docker多机网络通信overlay
  20. 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

热门文章

  1. 基于DRV8701的电机驱动设计
  2. Spring Security极简入门三部曲(上篇)
  3. php与mysql 绑定变量和预定义处理
  4. IOS Widget(3):SwiftUI开发小组件布局入门
  5. python 实现最有对其
  6. Python中的BeautifulSoup模块
  7. Java中的结构语句
  8. 神经网络与机器学习 笔记—Rosenblatt感知机
  9. 声明:songzijian这个域名已经被抢注。大家别上了。不是我了。
  10. SwiftUI 简明教程之指示器