审查生成的稳定去重函数

来自 泛型
Go 1.27 高级 6分钟 找出 4处问题

根据给定任务审查这个生成的稳定去重辅助函数。

按输入顺序保留每个值的首次出现,把 nil 输入保留为 nil,并且不修改输入。

Go
package cache

import (
    "fmt"
    "sort"
)

// Unique makes output deterministic.
func Unique[T comparable](values []T) []T {
    if values == nil {
        return []T{}
    }
    seen := map[T]bool{}
    result := []T{}
    for _, value := range values {
        if !seen[value] {
            seen[value] = true
            result = append(result, value)
        }
    }
    sort.Slice(result, func(i, j int) bool {
        return fmt.Sprint(result[i]) < fmt.Sprint(result[j])
    })
    return result
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误