Go:Tips2

时间:Sept. 8, 2021 分类:

目录:

重新记录一下tips

struct排序


type Instance struct {
    InstanceId string
    InstanceIP string
}

type InstanceSlice []Instance
func (a Instances) Len() int {    // 重写 Len() 方法
    return len(a)
}
func (a Instances) Swap(i, j int){     // 重写 Swap() 方法
    a[i], a[j] = a[j], a[i]
}
func (a Instances) Less(i, j int) bool {    // 重写 Less() 方法, 从大到小排序
    return a[j].InstanceId  < a[i].InstanceId 
}

sort.Sort(InstanceSlice(lb.Instances))

struct相等

type S struct {
    Field1 int
    field2 string
}

func main() {
    s1 := S{Field1: 1, field2: "hello"}
    s2 := S{Field1: 1, field2: "hello"}
    fmt.Println(reflect.DeepEqual(s1, s2))
}