• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go基础编程实践(四)——数组和map

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

数组去重

package main

import "fmt"

func main(){
  intSlice := []int{1,5,5,5,5,7,8,6,6, 6}
  fmt.Println(intSlice)
  uniqueIntSlice := unique(intSlice)
  fmt.Println(uniqueIntSlice)
}

func unique(intSlice []int) []int{
  keys := make(map[int]bool)
  uniqueElements := []int{}
  for _,entry := range intSlice {
    if _, value := keys[entry]; !value{
      keys[entry] =true
      uniqueElements = append(uniqueElements, entry)
    }
  }
  return uniqueElements
}

查找元素

package main

import (
  "fmt"
  "sort"
)

func main() {
  str := []string{"Sandy", "Provo", "St.george", "Salt lake City", "Draper", "South Jordan", "Murray"}

  // for循环查找
  for i, v := range str {
    if v == "Sandy" {
      fmt.Println(i)
    }
  }

  // sort包排序后查找
  // StringSlice给[]string添加方法以满足Interface接口,以便排序为递增序列。
  sortedList := sort.StringSlice(str)
  // 升序
  sortedList.Sort()
  fmt.Println(sortedList)
  index := sortedList.Search("Sandy")
  fmt.Println(index)
}

数组降序

package main

import (
  "sort"
  "fmt"
)

func main() {
  numbers := []int{1, 5, 3, 6, 2, 10, 8}
  // IntSlice给[]int添加方法以满足Interface接口,以便排序为递增序列。
  tobeSorted := sort.IntSlice(numbers)
  // Reverse包装一个Interface接口并返回一个新的Interface接口,对该接口排序可生成递减序列。
  sort.Sort(sort.Reverse(tobeSorted))
  fmt.Println(tobeSorted)
}

迭代数组

package main

import "fmt"

func main(){
  numbers := []int{1, 5, 3, 6, 2, 10, 8}

  for index,value := range numbers{
     fmt.Printf("Index: %v and Value: %v\n", index, value)
  }
}

将map转为数组

package main

import "fmt"

type NameAge struct{
  Name string
  Age int
}

func main(){
  var nameAgeSlice []NameAge
  nameAges := map[string]int{
    "Michael": 30,
    "John": 25,
    "Jessica": 26,
    "Ali": 18,
  }
  for key, value := range nameAges{
    nameAgeSlice = append(nameAgeSlice, NameAge {key, value})
  }

  fmt.Println(nameAgeSlice)

}

合并数组

package main

import "fmt"

func main(){
  items1 := []int{3,4}
  items2 := []int{1,2}
  result := append(items1, items2...)
  fmt.Println(result)
}

合并map

package main

import "fmt"

func main(){
  map1 := map[string]int {
   "Michael":10,
   "Jessica":20,
   "Tarik":33,
   "Jon": 22,
  }
  fmt.Println(map1)

  map2 := map[string]int {
    "Lord":11,
    "Of":22,
    "The":36,
    "Rings": 23,
  }
  for key, value := range map2{
    map1[key] = value
  }
  fmt.Println(map1)
}

判断map中key是否存在

package main

import "fmt"

func main() {
  nameAges := map[string]int{
    "Tarik": 32,
    "Michael": 30,
    "Jon": 25,
    "Jessica" : 20,
  }
  if _, exists := nameAges["Jessica"]; exists{
    fmt.Println("Jessica can be found")
  }else {
    fmt.Println("Jessica cannot be found")
  }
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go微服务架构Micro相关概念理解发布时间:2022-07-10
下一篇:
Gotime.Parse转时间戳为啥会自动加8小时?发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap