07. Go极简教程 map的基础使用

map的声明

package main

import "log"

// Vertex 大写开头的为Public对象, 必须写注释说明, golint会做检测
type Vertex struct {
    Lat, Long float64
}

func main() {
    // 使用 make 声明一个map, 键为string, 值为Vertex类型
    var m = make(map[string]Vertex)
    m["dog"] = Vertex{50, 100}
    log.Println(m)        //map[dog:{50 100}]
    log.Println(m["dog"]) //{50 100}

    // 也可使用有初始值的map[k]v声明
    var m2 = map[string]Vertex{
        "dog": Vertex{100, 150},
        "cat": {200, 250}, // 可以忽略结构体的类型名
    }
    m2["fish"] = Vertex{300, 350}
    log.Println(m2) // map[fish:{300 350} dog:{100 150} cat:{200 250}]
}

map的操作

package main

import (
    "log"
)

// Vertex 大写开头的为Public对象, 必须写注释说明, golint会做检测
type Vertex struct {
    Lat, Long float64
}

func main() {
    // 也可使用有初始值的map[k]v声明
    var m = map[string]Vertex{
        "dog": {100, 150},
        "cat": {200, 250},
    }

    // 插入或修改元素
    m["fish"] = Vertex{300, 350}

    // 获取元素, ok是来检测对象是否存在
    var ele, ok = m["fish"]
    log.Println(ele, ok) //Vertex{300, 350}, true

    ele2, ok := m["monkey"]
    log.Println(ele2, ok) //Vertex{0, 0}, false

    // 删除
    delete(m, "fish")

    // 合并map
    m2 := map[string]Vertex{
        "dog2": {1000, 1500},
        "cat2": {2000, 2500},
    }
    for k, v := range m2 {
        m[k] = v
    }

    // map遍历
    for k, v := range m {
        log.Println("key:", k, "value:", v)
    }

    log.Println(m)
}

参考资料:
http://go-tour-zh.appspot.com/

Go极简教程 继续阅读( 目录)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 现在选东西经常会在意牌子,不是知名度的问题,人生有涯而知无涯,因为不懂,图省事麻烦少就买个牌子。 前一阵买个自喷漆...
    笃行9阅读 555评论 1 0
  • 今天 落叶铺满了道路 我知道风昨晚来过 它知道我喜欢好看的叶子 无论是生长中的还是凋落的 我正想出门跑步 开门,风...
    清小沫阅读 261评论 0 2