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)
    }
  • 相关阅读:
    Integer类的parseInt和valueOf的区别
    华为实习小结
    程序员浪费生命的几种方式
    移动前端中viewport(视口) 转
    Console API 与命令行
    Ajax
    浏览器缓存机制
    mysql之各种命令总结
    jquery file upload 文件上传插件
    文件上传插件uploadify详解
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14682011.html
Copyright © 2011-2022 走看看