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

// 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)
}

你可能感兴趣的:(Go语言学习九:Map(集合)、递归函数、类型转换)