我正在尝试找到一个可以在以下代码中使用的类似接口:


func SliceMax[T comparable](ts []T) (T, error) {

    if len(ts) == 0 {

        return 0, errors.New("cannot get max from empty slice")

    }


    m := ts[0]

    for _, e := range ts {

        if e > m {

            m = e

        }

    }

    return m, nil

}

但是 comparable 不起作用(它在 > 标志上失败)。这里有内置界面还是我需要自己编写?