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

Ruby CLI股票指数爬虫用用户输入读取哈希出现nil报错如何解决

问题原因
  • 报错的核心是index_info_resource["#{$input}"]返回了nil,你后续尝试对nil调用[:full_name]方法,就触发了undefined method '[]' for nil:NilClass错误。
  • 你虽然确认输入字符串和哈希键看起来一致,但目前的输入处理只调用了chomp删除末尾换行符,没有处理用户可能输入的首尾空白字符(比如不小心输入的空格、制表符),就会导致生成的键和哈希内置的键不匹配。
  • 写法"#{$input}"属于冗余操作,$input本身已经是字符串类型,直接作为键使用即可,没必要做额外的字符串插值。
修复方案
  1. 优化用户输入处理逻辑,增加去除首尾空白的strip方法,输入获取代码修改为:
$input = gets.chomp.downcase.strip.to_s
  1. 访问哈希前增加存在性校验,避免直接访问不存在的键导致报错,参考代码如下:
if index_info_resource.key?($input)
  target_index = index_info_resource[$input]
  @@requested_index[:full_name] = target_index[:full_name]
  @@requested_index[:exchange] = target_index[:exchange]
  @@requested_index[:web_site] = target_index[:web_site]
else
  puts "你输入的股票指数不存在,请重新输入"
end
  1. 删除冗余的字符串插值逻辑,直接用$input作为键访问哈希即可。

如果还是存在问题,可以在访问哈希前加一行p $input打印输入的实际值,确认是否存在隐藏的不可见字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:03