【GO】Map练习题

创建和初始化map

题目描述

请使用两种不同的方法创建并初始化一个存储学生成绩的map,具体要求如下:

  1. map的键值对类型 :键为string类型(学生姓名),值为int类型(成绩)

  2. 包含的学生数据

    • 张三:85分

    • 李四:92分

    • 王五:78分

  3. 两种不同的初始化方式

    • 方式1:使用map字面量直接初始化

    • 方式2:使用make函数创建后再赋值

输出示例

方式1:map张三:85 李四:92 王五:78

方式2:map张三:85 李四:92 王五:78

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    // 方式1:使用字面量直接创建并初始化
    map1 := map[string]int{
        "张三": 85,
        "李四": 92,
        "王五": 78,
    }
    
    // 方式2:使用make创建,然后逐个赋值
    map2 := make(map[string]int)
    map2["张三"] = 85
    map2["李四"] = 92
    map2["王五"] = 78
    
    // 输出两种方式的结果
    fmt.Printf("方式1:%v\n", map1)
    fmt.Printf("方式2:%v\n", map2)
}

访问map元素

题目描述

创建map存储商品价格:{"苹果":5.5, "香蕉":3.2, "橙子":4.8, "葡萄":12.5},输出指定商品的价格。

输出示例

苹果价格:5.5元

香蕉价格:3.2元

葡萄价格:12.5元

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    prices := map[string]float64{
        "苹果": 5.5,
        "香蕉": 3.2,
        "橙子": 4.8,
        "葡萄": 12.5,
    }
    
    fmt.Printf("苹果价格:%.1f元\n", prices["苹果"])
    fmt.Printf("香蕉价格:%.1f元\n", prices["香蕉"])
    fmt.Printf("葡萄价格:%.1f元\n", prices["葡萄"])
}

删除元素

题目描述

创建map存储城市人口:{"北京":2189, "上海":2487, "广州":1874, "深圳":1768},删除广州的数据,输出删除后的map。

输出示例

原map:map北京:2189 上海:2487 广州:1874 深圳:1768

删除广州后:map北京:2189 上海:2487 深圳:1768

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    cities := map[string]int{
        "北京": 2189,
        "上海": 2487,
        "广州": 1874,
        "深圳": 1768,
    }
    
    fmt.Printf("原map:%v\n", cities)
    
    delete(cities, "广州")
    
    fmt.Printf("删除广州后:%v\n", cities)
}

图书管理系统

题目描述

创建一个图书管理系统,使用map存储图书信息(书号->书名)。完成以下操作:

  1. 初始化添加3本书:{"B001":"Go语言入门", "B002":"Python编程", "B003":"Java核心技术"}

  2. 查询并输出B002的书名

  3. 修改B003的书名为"Java高级编程"

  4. 添加新书B004:"数据库原理"

  5. 删除B001

  6. 输出最终所有图书

输出示例

初始图书:mapB001:Go语言入门 B002:Python编程 B003:Java核心技术

查询B002:Python编程

修改后:mapB001:Go语言入门 B002:Python编程 B003:Java高级编程

添加B004后:mapB001:Go语言入门 B002:Python编程 B003:Java高级编程 B004:数据库原理

删除B001后:mapB002:Python编程 B003:Java高级编程 B004:数据库原理

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    // 1. 初始化图书
    books := map[string]string{
        "B001": "Go语言入门",
        "B002": "Python编程",
        "B003": "Java核心技术",
    }
    fmt.Printf("初始图书:%v\n", books)
    
    // 2. 查询B002
    fmt.Printf("查询B002:%s\n", books["B002"])
    
    // 3. 修改B003
    books["B003"] = "Java高级编程"
    fmt.Printf("修改后:%v\n", books)
    
    // 4. 添加B004
    books["B004"] = "数据库原理"
    fmt.Printf("添加B004后:%v\n", books)
    
    // 5. 删除B001
    delete(books, "B001")
    fmt.Printf("删除B001后:%v\n", books)
}
相关推荐
何以解忧,唯有..15 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
踏着七彩祥云的小丑18 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
JCGKS18 小时前
Go `init` 函数:包初始化顺序到底是怎样的
golang·init·init执行顺序
何以解忧,唯有..20 小时前
Go语言中的const:常量声明与iota枚举详解
java·开发语言·golang
geovindu1 天前
go: Reactor Pattern
开发语言·后端·设计模式·golang·反应器模式
記億揺晃着的那天1 天前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
jingling5552 天前
go | 环境安装和快速入门
开发语言·后端·golang
java_cj2 天前
从kubectl学Visitor模式:如何优雅处理多态数据结构的遍历
云原生·golang·k8s·访问者模式
何以解忧,唯有..2 天前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..2 天前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang