iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Sort.Reverse in Go
  • 735
分享到

Sort.Reverse in Go

2024-04-04 23:04:11 735人浏览 八月长安
摘要

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Sort.Reverse in Go》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容我正在查看

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Sort.Reverse in Go》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我正在查看 sort.reverse 代码:

type reverse struct {
    // This embedded Interface permits Reverse to use the methods of
    // another Interface implementation.
    Interface
}

// Less returns the opposite of the embedded implementation's Less method.
func (r reverse) Less(i, j int) bool {
    return r.Interface.Less(j, i)
}

// Reverse returns the reverse order for data.
func Reverse(data Interface) Interface {
    return &reverse{data}
}

据我了解,reverse 实现了 interface (并覆盖 less),而 *reverse 没有实现 interface。为什么 reverse 返回 *reverse (不知为何是 interface)?


解决方案


对于您的评论:

golang 中没有方法重写。它不会覆盖 less。它正在实现 interfaceless,它是 interface 类型:

type interface interface {
        // len is the number of elements in the collection.
        len() int
        // less reports whether the element with
        // index i should sort before the element with index j.
        less(i, j int) bool
        // swap swaps the elements with indexes i and j.
        swap(i, j int)
}

对于所提出的问题:

因为要更改数据的顺序,所以它应该是反向结构的地址。这就是为什么它是 *reverse。现在您可以传递任何实现 interface 接口的类型。为了实现 interface,您应该实现 interface 中定义的所有方法。

type intslice []int

func (p intslice) len() int           { return len(p) }
func (p intslice) less(i, j int) bool { return p[i] < p[j] }
func (p intslice) swap(i, j int)      { p[i], p[j] = p[j], p[i] }

在上面的例子中,您可以看到 intslice 实现了 interface。因此,您可以将 intslice 作为参数传递给 reverse。

作为示例,您还可以使用 float 值来实现:

package main

import (
    "fmt"
    "sort"
)

func main() {
    //s := []int{5, 2, 6, 3, 1, 4} // unsorted
    s1 := []float64{5.2, 2.6, .6, .03, 2.1 } // unsorted
    sort.Sort(sort.Reverse(sort.Float64Slice(s1)))
    fmt.Println(s1)
}

Playground example

今天关于《Sort.Reverse in Go》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: Sort.Reverse in Go

本文链接: http://www.lsjlt.com/news/595855.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Sort.Reverse in Go
    本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Sort.Reverse in Go》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容我正在查看 ...
    99+
    2024-04-04
  • the "in" use in mysql
    use in in mysql,if the field is indexed,the index is still useful,but when the data quantity is small r...
    99+
    2024-04-02
  • Threading in Python-
    原文是2.x版本的,然后应该是英文的.我在学习的过程中,同时改成python 3.3并且改成中文,引入一些自己的理解.Thread Objects线程对象The simplest way to use a Thread is to inst...
    99+
    2023-01-31
    Threading Python
  • 什么是CSS in JS与JS in CSS
    本篇内容主要讲解“什么是CSS in JS与JS in CSS”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是CSS in JS与JS in CSS”吧!C...
    99+
    2024-04-02
  • (GCS) in GL
    GCS can be used for Single ledger Multiple ledgers in single inst...
    99+
    2024-04-02
  • Thrift in python
    Thrift官网上的文档很少,从网上搜到的也大都千篇一律,即使是《Thrift: the missing guide》对如何构建python的server和client也没有进行详尽讲述。本博特意看了下thrift提供的python l...
    99+
    2023-01-31
    Thrift python
  • MySQL(42)MySQL IN和NOT IN用法详解
    MySQL IN和NOT IN用法详解 MySQL 中的 IN 运算符用来判断表达式的值是否位于给出的列表中;如果是,返回值为 1,否则返回值为 0。 NOT IN 的作用和 IN 恰好相反,NOT IN 用来判断表达式的值是否不存在于给出...
    99+
    2023-10-26
    mysql 数据库 sql
  • MySQL中IN和NOT IN的使用方法
    这篇文章给大家分享的是有关MySQL中IN和NOT IN的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.IN与NOT IN的语法格式MySQL 中的 IN 运算符用来...
    99+
    2024-04-02
  • Python GIL(Global In
    一、GIL介绍 GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。 可以肯定的一点是:保护不同的数据的安全,就应该加不同的锁。 要了解...
    99+
    2023-01-31
    Python GIL Global
  • Python in Hacking[Ge
    #!/usr/bin/python #  -*- coding:utf-8 -*-  import urllib2 import re import string from sgmllib import SGMLParser class g...
    99+
    2023-01-31
    Python Hacking Ge
  • Design Patterns In Swift
    作者:禅与计算机程序设计艺术 1.简介 概述 在设计模式方面,Swift社区已经做出了大量贡献,如著名的Swift设计模式库,如著名的Swift设计模式手册。其中也包括一些设计模式的实践案例。对于软件...
    99+
    2023-10-08
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • error for rrdtool in
    python3 安装rrdtool报错 报错信息如下 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-*/ 解决方案 检查pi...
    99+
    2023-01-31
    error rrdtool
  • Python in Hacking[LO
    Pnig0s p.s: ***一韩国站,遭遇Mysql4,好在有FILE权限只能批量LOAD_FILE路径,为了避免繁重的工作量写了这个脚本,字典文件名为dic.txt路径一行一个,因为环境不同,此脚本并非通用,稍作改动即可。复制代码请务必...
    99+
    2023-01-31
    Python Hacking LO
  • golang有in吗
    本文小编为大家详细介绍“golang有in吗”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang有in吗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。golang没有in。golang中即没有提供类似Py...
    99+
    2023-07-05
  • Built-in Functions(p
        在python中有很多的内置函数,这些内置函数让我们更高效,在此将部分相关知识总结一下。官网地址:https://docs.python.org/3.6/library/functions.html Built-in Functio...
    99+
    2023-01-31
    Built Functions
  • IPSec in IBM SoftLay
    (3)Customer end: Juniper SRX Firewall (policy based ×××)Phase 1set security ike proposal ike-phase1-proposal authenticat...
    99+
    2023-01-31
    IPSec IBM SoftLay
  • Python中怎么使用in和not in操作符
    在Python中,可以使用in和not in操作符来检查一个元素是否存在于一个集合中。 例如,我们可以这样使用in操作符来检查一个元...
    99+
    2024-04-03
    Python
  • in, not in , exists , not exists它们有什么区别
    本篇内容介绍了“in, not in , exists , not exists它们有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧...
    99+
    2024-04-02
  • mybatis中使用not in与 in的写法说明
    目录使用not in与 in的写法in的用法not in的用法使用in查询时的注意事项当查询的参数只有一个时 当查询的参数有多个时使用not in与 in的写法 首先声明我...
    99+
    2024-04-02
  • T-SQL查询为何慎用IN和NOT IN详解
    目录前言【测试一:in子查询】【测试二:not in子查询】总结:前言 今天突然想到之前在书上看到的一个例子,竟然想不起来了. 于是翻书找出来,测试一下. -- dro&#...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作