Go语言学习九:Map(集合)、递归函数、类型转换

本文介绍Go语言中Map的使用方法,包括定义、插入、遍历和删除操作,并展示了如何利用递归函数计算阶乘。此外,还介绍了类型转换的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// Map 是一种无序的键值对的集合。
// Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
// Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。
// 不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。

package main

import "fmt"

// 递归函数
func Factorial(x int) (result int) {
	if x == 0 { //这里是从0一直return到设置的数字,然后再返回,
		result = 1
	} else {
		result = x * Factorial(x-1)
	}
	return result
}

func main() {
	var countryCapitalMap map[string]string //定义集合,初始为nil
	countryCapitalMap = make(map[string]string)

	// 插入键值对
	countryCapitalMap["France"] = "Paris"
	countryCapitalMap["Italy"] = "Rome"
	countryCapitalMap["China"] = "Paking"

	for country := range countryCapitalMap { //这里country如果是键,就不用加占位符,默认是第一个
		fmt.Println("Capital of", country, "is", countryCapitalMap[country])
	}
	captial, ok := countryCapitalMap["United States"] //这里的ok是看是否存在的,前面那个才是去键值对的、
	if ok {
		fmt.Println("Capital of United States is", captial)
		fmt.Println(ok)
	} else {
		fmt.Println("Capital of United States is not present")
		fmt.Println(ok)
	}

	//删除集合元素
	delete(countryCapitalMap, "France")
	for country := range countryCapitalMap {
		fmt.Println("Capital of", country, "is", countryCapitalMap[country])
	}

	// 递归函数
	var i int = 5 //数字不能太大,否则会超过int的界限
	fmt.Println(i, "的阶乘是", Factorial(i))

	//类型转换
	var sum int = 17
	var count int = 5
	var mean float32

	mean = float32(sum) / float32(count)
	fmt.Println("mean的值为", mean)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值