当前位置: 首页 > 面试题库 >

如何在进行中反转切片?

阳俊德
2023-03-14
问题内容

如何[]interface{}在Go中反转任意切片()?我宁愿不必编写LessSwap使用sort.Reverse。有没有简单的内置方法来做到这一点?


问题答案:

没有一个简单的,内置的用于反转接口{}的部分。您可以编写一个for循环来做到这一点:

for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
    s[i], s[j] = s[j], s[i]
}

Go
1.8中引入的reflect.Swapper函数可用于编写通用的反转函数:

func reverseAny(s interface{}) {
    n := reflect.ValueOf(s).Len()
    swap := reflect.Swapper(s)
    for i, j := 0, n-1; i < j; i, j = i+1, j-1 {
        swap(i, j)
    }
}

游乐场的例子



 类似资料:
  • 问题内容: 为什么不起作用? 问题答案: 创建所选子列表的副本,该副本由反转。这不会更改原始列表。切片Python列表始终会创建副本-您可以使用 复制整个列表。

  • 问题内容: 我正在尝试对Go中的整数切片进行反向排序。 如何对它进行排序,使其从最高到最低?所以[25 5 4 3 1] 我已经试过了 资料来源:http : //golang.org/pkg/sort/#Reverse 但是,我得到下面的错误 问题答案: sort.Ints是对几个int进行排序的便捷函数。通常,如果要对某些内容进行排序和排序,则需要实现sort.Interface接口.Reve

  • 你如何防抖React.js? 我想防抖手柄。 我试过,但它不起作用。

  • 我从下面的另一个问题中看到了一个代码,但我不知道如何利用它。

  • 问题内容: 我需要取消转义包含转义的XML标签的xml字符串: 我确实找到了一些可以执行此任务的库,但是我宁愿使用可以执行此任务的单一方法。 有人可以帮忙吗? 干杯,Bas Hendriks 问题答案: (commons-lang,下载)

  • 我在AP计算机科学的9年级,我们得到了一个制作游戏的项目。我选择了老师建议的一个简单的气游戏。但我不知道如何在电脑和播放器之间交替旋转。