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)
    }
  • 相关阅读:
    ajax提交Form
    MySQL新建用户,授权,删除用户,修改密码总结
    php 数组操作类(整合 给意见)
    PHP基于数组的分页函数(核心函数array_slice())
    php生成table表格
    百度地图定位
    python-redis-订阅和发布
    宿主机-免密登录Docker容器
    docker-文件系统出错处理
    python-redis集合模式
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14682011.html
Copyright © 2011-2022 走看看