小编Joe*_*ong的帖子

Golang:对接口切片进行排序

我实现了一个界面几何图形,并有一部分 [] 几何图形,

anything := []geometry{
        rect{width: 3, height: 4, name: "rect"},
        circle{radius: 5, name: "circle"},
}
Run Code Online (Sandbox Code Playgroud)

现在我想按名称对切片进行排序,更改切片中元素的顺序。我可以使用 getName 函数来获取名称。排序后,我希望它像切片一样

{circle{radius: 5, name: "circle"},rect{width: 3, height: 4, name: "rect"},}
Run Code Online (Sandbox Code Playgroud)

这是代码

package main

import (
    "fmt"
    "math"
    "sort"
)

type geometry interface {
    area() float64
    perim() float64
    getName() string
}

type rect struct {
    width, height float64
    name          string
}

type circle struct {
    radius float64
    name   string
}

func (r rect) area() float64 {
    return r.width * r.height
}
func …
Run Code Online (Sandbox Code Playgroud)

sorting interface go slice

-1
推荐指数
1
解决办法
2453
查看次数

标签 统计

go ×1

interface ×1

slice ×1

sorting ×1