【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. 输出最终所有图书

输出示例

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

查询B002:Python编程

修改后:map[B001:Go语言入门 B002:Python编程 B003:Java高级编程]

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

删除B001后:map[B002: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)
}
相关推荐
so2F32hj28 小时前
一款Go语言Gin框架DDD脚手架,适合快速搭建项目
开发语言·golang·gin
2301_8035545211 小时前
三大编程语言(Python/Go/C++)项目启动全解析
c++·python·golang
木子欢儿14 小时前
在 Fedora 上配置 Go 语言(Golang)开发环境
开发语言·后端·golang
yangyanping2010815 小时前
Go语言学习之 Gin 生产级 flag命令行参数解析库
开发语言·golang·gin
yangyanping2010815 小时前
Go语言学习之配置管理库Viper
开发语言·学习·golang
pixcarp16 小时前
GORM基础入门使用教程
数据库·golang
呆萌很16 小时前
【GO】结构体定义练习题
golang
一条闲鱼_mytube16 小时前
【深入理解】HTTP/3 与 QUIC 协议:从原理到 Go 语言实战
网络协议·http·golang
麦德泽特16 小时前
基于 Go 语言的 Modbus 项目实战:构建高性能、可扩展的工业通信服务器
服务器·开发语言·golang·modbus·rtu
cch891817 小时前
ThinkPHP6.x全面升级:性能与功能双飞跃
开发语言·vue.js·后端·golang