【发布时间】:2016-11-30 21:06:13
【问题描述】:
尝试为 String 类创建一个方法,该方法将返回一个已交换的字符串。我写了两种不同的方法
class String
def to_alternating_case
self.swapcase
end
end
上面的代码适用于所有输入的字符串。但是如果输入以下代码:
class String
def to_alternating_case
self.swapcase!
end
end
然后一个包含所有数字的字符串将返回 nil。有人能解释一下为什么当涉及到只包含数字的字符串时这些行为会有所不同吗?
【问题讨论】:
-
如果一个方法没有明确的接收者,接收者被假定为
self。因此,您可以将self.swapcase替换为swapcase。