Ruby二维数组语法报错:unexpected tIdentifier问题排查求助
问题原因与修复方案
嘿,我一眼就瞅到问题所在啦!你这段Ruby代码的语法错误根源在于数组定义语句和后续的each方法调用之间没有正确分隔。
Ruby的解析器需要明确的分隔符(要么是换行,要么是分号)来区分两个独立的表达式。你把数组赋值和each循环写在同一行且没加分号,解析器会把2d_array.each当成数组定义的一部分,自然就抛出unexpected tIdentifier错误啦。而Codecademy的代码编辑器可能做了宽松的语法兼容处理,自动帮你补全了分隔逻辑,所以能正常运行。
修正后的代码示例
# 推荐方案:用换行分隔表达式,可读性更强 2d_array = [ ["Yuske", "The protagonist"], ["Hiei", "Badmon"], ["Kurama", "Smartmon"], ["kuwabara", "dumbmon"], ["Boton", "bae"] ] 2d_array.each do |x,y| puts "The character #{x} is regarded as #{y} in the show Yu Yu Hakusho" end # 备选方案:用分号强制分隔(不推荐,代码可读性差) 2d_array= [ ["Yuske", "The protagonist"],["Hiei", "Badmon"],["Kurama", "Smartmon"], ["kuwabara", "dumbmon"], ["Boton", "bae"] ]; 2d_array.each do |x,y| puts "The character #{x} is regarded as #{y} in the show Yu Yu Hakusho" end
另外还有个小细节:你puts里的字符串没写完(结尾是Y...),记得补全完整内容,不然也可能触发语法错误哦~
内容的提问来源于stack exchange,提问作者Wilke Jones
相关产品推荐
相关产品推荐

