【golog】我的go学与思10

8 篇文章 0 订阅
8 篇文章 0 订阅

映射

正文

对一个结构体进行映射,即结构体是其值,这里定义键的类型为string。

package main

import "fmt"

type Vertex struct {
	Lat, Long float64
}

var m = map[string]Vertex{
	"Bell Labs": Vertex{
		40.68433, -74.39967,
	},
	"Google": Vertex{
		37.42202, -122.08408,
	},
}

func main() {
	fmt.Println(m)
}
// 输出
map[Bell Labs:{40.68433 -74.39967} Google:{37.42202 -122.08408}]

可以缩写为:

var m = map[string]Vertex{
	"Bell Labs": {40.68433, -74.39967},
	"Google":    {37.42202, -122.08408},
}

就是可以把结构体名省略。

操作

package main

import "fmt"

func main() {
	m := make(map[string]int)

	m["Answer"] = 42
	fmt.Println("The value:", m["Answer"])

	m["Answer"] = 48
	fmt.Println("The value:", m["Answer"])

	delete(m, "Answer")
	fmt.Println("The value:", m["Answer"])

	v, ok := m["Answer"]
	fmt.Println("The value:", v, "Present?", ok)
}

map有增删查改操作。

  • 对于一个键没有其值,相当于插入。
  • 对于一个键若有其值,相当于修改。
  • 访问键的时候,可带一个bool变量来判断是否存在

这个是很重要的,不论什么时候都要知道一个东西是否可访问,然后在读写,不然容易出现问题。当然map写是随意的,所以没有问题。但是go语言可缺省判断操作的便利性一定会被不良程序员滥用导致有错误风险。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值