You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言编写文件单词频率统计程序排序颠倒如何解决?

问题原因

sort.SliceStable 方法的排序规则由传入的匿名函数决定:当匿名函数返回 true 时,参数 i 对应的元素会被排在参数 j 对应元素的前面。
你当前的匿名函数逻辑是 return counts[words[i]] < counts[words[j]],也就是频率更低的单词会被排在更靠前的位置,最终得到的就是升序(从低到高)的排序结果。

修复方法

只需要把排序逻辑里的小于号改成大于号即可,修改后的排序代码如下:

sort.SliceStable(words, func(i, j int) bool {
    return counts[words[i]] > counts[words[j]]
})

额外优化建议

  • 你当前的代码没有关闭打开的文件,建议在 os.Open 成功后增加 defer file.Close() 避免资源泄漏
  • 遍历完成后建议检查 scanner.Err() 处理扫描过程中可能出现的读取错误

内容的提问来源于stack exchange,提问作者pinotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:06:03