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

Go语言:如何遍历切片前N个元素并输出申请者姓名?

问题解决:输出前N位申请者姓名

你的代码存在两个核心问题:

  • 输出姓名时重复调用了applicant.secondName,导致打印的是两次姓氏,正确逻辑应该拼接名字(firstName)和姓氏(secondName)
  • 没有限制遍历范围,会输出所有申请者,而非仅前3位GPA最高的

修正后的代码

// 定义要输出的前N位,此处N=3
n := 3
// 处理申请者数量不足N的情况,避免索引越界
if len(applicants) < n {
    n = len(applicants)
}

// 仅遍历前N位申请者
for i := 0; i < n; i++ {
    applicant := applicants[i]
    fmt.Println(applicant.firstName + " " + applicant.secondName)
}

更简洁的实现方式

如果想用range遍历,可以通过切片截断直接获取前N位数据,同时利用fmt.Println的参数特性简化字符串拼接:

n := 3
if len(applicants) < n {
    n = len(applicants)
}

for _, applicant := range applicants[:n] {
    fmt.Println(applicant.firstName, applicant.secondName)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:19:22