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

本地IDE运行正常但Codewars返回nil,Ruby代码问题求助

问题排查与修复

你的代码在本地IDE能看到预期结果,但Codewars返回nil的核心原因是:方法没有返回目标字符串,只是通过print把内容输出到控制台。

Ruby方法默认会返回最后一行代码的执行结果,你的accum方法最后执行的是loop块,当触发break时,loop返回nil,所以Codewars平台获取到的方法返回值就是nil,而非你期望的拼接字符串。

修复方案

把输出逻辑改成构建字符串并返回的形式,示例代码如下:

def accum(s)
  s.chars.each_with_index.map do |char, idx|
    "#{char.upcase}#{char.downcase * idx}"
  end.join('-')
end

代码说明:

  • s.chars将字符串拆分为字符数组,比split("")更简洁
  • each_with_index同时获取字符和索引,索引可直接用来控制重复次数(第一个字符索引为0,对应重复0次,符合需求)
  • map将每个字符转换为指定格式的子串
  • join('-')把所有子串用-连接成最终字符串,方法会自动返回该结果

修改后,方法会直接返回目标字符串,Codewars就能正确获取到结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:02:47