审查生成的事件收集器

来自 切片
Go 1.27 高级 6分钟 找出 3处问题

根据任务要求审查这段生成的事件收集代码。

按 channel 顺序最多收集 limit 个事件,返回不再与生产方缓冲区共享的 payload,并在 limit 无效时避免 panic。

Go
package events

import "sort"

type Event struct {
    ID      int
    Payload []byte
}

func collect(ch <-chan Event, limit int) []Event {
    events := make([]Event, limit)
    for event := range ch {
        events = append(events, event)
        if len(events) == limit {
            break
        }
    }
    sort.Slice(events, func(i, j int) bool {
        return events[i].ID < events[j].ID
    })
    return events
}

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

在试验场中打开
报告错误