zoukankan      html  css  js  c++  java
  • 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)
    }
  • 相关阅读:
    oracle 12c迁移数据及遇到的问题
    用最有效率的方法计算 2 乘以 8?
    Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
    是否可以在 static 环境中访问非 static 变量?
    什么是值传递和引用传递?
    Java 支持的数据类型有哪些?
    JDK、JRE、JVM 分别是什么关系?
    idea设置方法注释
    Java中&和&&的区别
    int和Integer有什么区别?
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14682011.html
Copyright © 2011-2022 走看看