Go语言学习五

103 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Go语言的Map(集合)

package main

import "fmt"

func main() {
   //定义Map,默认情况下map是nil
   var countryCapitalMap map[string]string
   countryCapitalMap = make(map[string]string)

   //对map插入键值对
   countryCapitalMap["China"] = "北京"
   countryCapitalMap["Korea"] = "韩国棒子"
   countryCapitalMap["India"] = "印度阿三"
   countryCapitalMap["Japan"] = "日本鬼子"

   //使用键输出值
   for country := range countryCapitalMap {
      fmt.Println(country, "的首都是", countryCapitalMap[country])
   }

   //查看元素是否在集合中存在
   capital, ok := countryCapitalMap["American"]
   if ok {
      fmt.Println("Amerycan 的首都是", capital)
   } else {
      fmt.Println("American 的首都不存在!")
   }

   //删除集合的元素  delete()函数
   delete(countryCapitalMap, "Japan")
   fmt.Println("日本国家条目被删除")

   for country := range countryCapitalMap {
      fmt.Println(country, "的首都是", countryCapitalMap[country])
   }
}

Go语言的递归函数

package main

import "fmt"

//实例:阶乘
func Factorial(n uint64) (res uint64) {
   if n > 0 {
      res = n * Factorial(n-1)
      return res
   }
   return 1
}

//实例:斐波那契数列
func fibonacci(n int) int {
   if n < 2 {
      return n
   }
   return fibonacci(n-2) + fibonacci(n-1)
}

func main() {
   //递归:在运行的过程中调用自己

   var i int = 15
   fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(uint64(i)))

   var j int
   for j = 0; j < 10; j++ {
      fmt.Printf("%d\t", fibonacci(j))
   }
}

Go语言的类型转换

package main

import "fmt"

func main() {
   //Go是强类型语言,对数据类型要求很严格
   var sum int = 17
   var count int32 = 5
   var mean float32

   mean = float32(sum) / float32(count)
   fmt.Printf("mean 的值为:%f\n", mean)

   //Go不支持隐式转换类型
   var a int64 = 3
   var b int32

   //b = a    //报错
   b = int32(a) //正确
   fmt.Printf("b 为:%d", b)
}