私が問題をどのように理解しているかについて少し説明します。
文字列でsplatcollectを使用すると、:to_aまたは:to_aryが文字列に送信されます
class String
def method_missing method, *args, &block
p method #=> :to_ary
p args #=> []
p block #=> nil
end
end
*b = "b"
だから私は:to_aryメソッドを再定義することが私が求めているものになるだろうと思っていました。
class String
def to_ary
["to_a"]
end
end
p *a = "a" #=> "a"
p a #=> "a"
*b = "b"
p b #=> ["to_a"]
今、これは私を終わりのない混乱させます。
* a = "a"の結果を出力すると、?に割り当てられた値が変更されます。
さらにデモンストレーションする
class String
def to_ary
[self.upcase!]
end
end
p *a = "a" #=> "a"
p a #=> "a"
*b = "b"
p b #=> ["B"]