Ruby,转换为字符串

3

我用 Ruby 编写了这个程序:

"Nonna = CIAO CARO NIPOTINO, COME STAI??"
 puts "Tu = Bene nonna, ma non urlare"
 puts "Nonna = COME DICI, PARLA PIU' FORTE!!"

def ask()
    a = gets.chomp
    ok = a.upcase()
    numero = rand(100)
    ciao = "CIAO NONNA!"
    if a == ok
       puts "NO CARO, NON LO VEDO DAL " + numero
       ask
    else
       puts "COSA HAI DETTO? NON CI SENTO, RIPETI!"
       ask
    end
end

ask()

(请原谅我的意大利语)

然而,当我运行它时,会出现这个错误:

Traceback (most recent call last):
    2: from vecchia.rb:20:in `<main>'
    1: from vecchia.rb:11:in `chiede'
vecchia.rb:11:in `+': no implicit conversion of Integer into String (TypeError)

我能做什么?


1
既然你的问题已经得到了解答,我建议你将修改后的代码提交到SO的姐妹站点CodeReview。在那里,你会得到关于如何改进你的代码的建议。(有几个问题,其中主要问题是你不应该在这里使用递归。)那个网站的任务是帮助你改进工作中的代码,而SO则关注于破损的代码和算法问题。 - Cary Swoveland
1个回答

5
它在抱怨一个数字与字符串连接的问题。有两种简单的方法:
1)将数字转换为字符串
puts "NO CARO, NON LO VEDO DAL " + numero.to_s

或2)将数字插入字符串中。
puts "NO CARO, NON LO VEDO DAL #{numero}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接