当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO Slice用法及代码示例


GO语言"sort"包中"Slice"函数的用法及代码示例。

用法:

func Slice(x any, less func(i, j int) bool)

给定提供的 less 函数,Slice 对切片 x 进行排序。如果 x 不是切片,它会Panics。

排序不能保证是稳定的:相等的元素可能会从它们的原始顺序颠倒过来。对于稳定的排序,请使用SliceStable

less 函数必须满足与接口类型的 Less 方法相同的要求。

例子:

package main

import (
	"fmt"
	"sort"
)

func main() {
	people := []struct {
		Name string
		Age  int
	}{
		{"Gopher", 7},
		{"Alice", 55},
		{"Vera", 24},
		{"Bob", 75},
	}
	sort.Slice(people, func(i, j int) bool { return people[i].Name < people[j].Name })
	fmt.Println("By name:", people)

	sort.Slice(people, func(i, j int) bool { return people[i].Age < people[j].Age })
	fmt.Println("By age:", people)
}

输出:

By name: [{Alice 55} {Bob 75} {Gopher 7} {Vera 24}]
By age: [{Gopher 7} {Vera 24} {Alice 55} {Bob 75}]

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Slice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。