`to``方法对`x`的作用是什么?

时间:2015-08-13 22:10:57

标签: ruby

此代码将生成一个正整数梯形图:

puts "Enter an integer"
n = gets
def pattern(n)
  2.step(n, 2).map {|x| x.to_s * x}.join("\n")
end

我一直在努力弄清to_s对代码的作用。

2 个答案:

答案 0 :(得分:0)

它将fixnum转换为字符串。这是特别必要的,因为它后跟* x操作,后者乘以一个字符串。如果未应用to_s,那么* x将会算术地乘以fixnum。

答案 1 :(得分:0)

需要x.to_s以便调用字符串的*方法,而不是整数的*方法。

> i = 2
=> 2
> i * 2
=> 4
> s = '2'
=> "2"
> s * 2
=> "22"