• sort.Sort() interface in GoLang


    原文:https://medium.com/@kdnotes/sort-sort-interface-in-golang-1d263d96956d

    package main
    import (
     "fmt"
     "sort"
     //"unicode/utf8"
    )
    type P struct {
     name string
     age  int
    }
    type nameSortedPs []P
    func (a nameSortedPs) Len() int {
     return len(a)
    }
    func (a nameSortedPs) Less(i, j int) bool {
     //iRune, _ := utf8.DecodeRuneInString(a[i].name)
     //jRune, _ := utf8.DecodeRuneInString(a[j].name)
     //return int32(iRune) < int32(jRune)
      return a[i].age > a[j].age
    }
    func (a nameSortedPs) Swap(i, j int) {
     a[i], a[j] = a[j], a[i]
    }
    func main() {
     groupA := []P{
      {"gold", 14}, {"dave", 18}, {"kane", 12}, {"rain", 34},
     }
     sort.Sort(nameSortedPs(groupA))
    fmt.Println(groupA)
    }
    

      

    ------------------------------

    Sorting in Go

    sort.Ints
    sort.Float64s
    sort.Strings
    names := []string{“jane”, “dave”, “mike”, “kane”, “rain”}
    sort.Strings(names)
    fmt.Println(names)
    group := []struct {
    name string
    age int
    }{
    {“Gold”, 14}, {“dave”, 18}, {“kane”, 12}, {“rain”, 34},
    }sort.Slice(group, func(i, j int) bool {
    return group[i].age < group[j].age
    })fmt.Println(group)

    The Sort interface

    type Interface interface{
    Len() int
    Less (i , j) bool
    Swap(i , j int)
    }
    import (
    "fmt"
    "sort"
    "unicode/utf8"
    )type P struct {
    name string
    age int
    }type nameSortedPs []Pfunc (a nameSortedPs) Len() int {
    return len(a)
    }func (a nameSortedPs) Less(i, j int) bool {
    iRune, _ := utf8.DecodeRuneInString(a[i].name)
    jRune, _ := utf8.DecodeRuneInString(a[j].name)
    return int32(iRune) < int32(jRune)
    }func (a nameSortedPs) Swap(i, j int) {
    a[i], a[j] = a[j], a[i]
    }func main() {
    groupA := []P{
    {"gold", 14}, {"dave", 18}, {"kane", 12}, {"rain", 34},
    }
    sort.Sort(nameSortedPs(groupA))fmt.Println(groupA)
    }
  • 相关阅读:
    【VUE】vue + element 插槽实现表格某一列点击事件
    【CDH】CDH集群hiveserver2服务频繁挂掉
    【】火焰图安装使用
    【VUE】vue + elementui实现表格一个单元格中加多行数据
    【Mybatis】useGeneratedKeys参数用法及遇到的问题
    【springboot】SpringBoot配置logback.xml 多环境
    Java 代码中数字中间带下划线是几个意思
    Java 9 中的字符串(String)压缩的改进
    【抖机灵】JS小妙用
    wrapper.or and 语句写法
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14682011.html
Copyright © 2020-2023  润新知