【发布时间】:2017-09-30 15:51:19
【问题描述】:
我希望用户的输入变成一个整数,它是一个新数组中的 [0] 索引,我想稍后添加更多项目。有没有办法将用户的输入转换为数组而不将其更改为整数并推送它?这是我当前的代码:
guesses = []
puts "Guess what number I'm thinking of. It's between 1 and #{solution_range}"
guess = gets.to_i
guesses.push(guess)
【问题讨论】:
-
如果您希望它是整数,则必须转换为整数(
gets将返回String)。您可以将代码缩短为guesses << gets.to_i并获得相同的结果。 -
guesses = [gets.to_i]也许。 -
您可以分配方法链的结果(参见下面的my answer),但通常可读性胜过聪明。 YMMV。
-
@sagarpandya82 按照您建议的方式分配文字会起作用,但使用 Kernel#Integer 比 String#to_i 更安全。所以,
guesses = [Integer(gets)]可能是更好的选择,如果您只是在寻找保证单元素数组的最短代码并希望避免链接方法。
标签: arrays ruby methods refactoring