【发布时间】:2011-02-04 02:28:39
【问题描述】:
为什么我不能这样做?
>> s = String
>> s(42)
s(42)
NoMethodError: undefined method `s' for main:Object
from (irb):86
from /home/sam/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
下一步。
>> String.new 42
String.new 42
TypeError: can't convert Fixnum into String
from (irb):90:in `initialize'
from (irb):90:in `new'
from (irb):90
from /home/sam/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
如果 String.new 不能,String() 如何将 Fixnum 转换为 String?我假设 String() 调用 to_s。但是除了要复制的字符串之外,String.new 还在寻找什么? new 是 dup 的别名吗?
【问题讨论】:
-
你的两个问题没有任何关系。请把它们分成两个问题。