私はよく次のことをします。
@value = @value.some_method
しかし、Ruby にはそのための短い構文はありませんか? 一部のメソッドは bang に相当するものを提供しますが、残念ながらすべてではありません...
反復には、次を使用できます。
i += 1
それ、または同様のものは、上記のコード スニペットでも利用できますか?
これをより短い方法で行うものはありません。
公平を期すために、これは異常なパターンであり、特にまれではありませんが、次のような演算子があると混乱を招きます。
@value .= some_method
読み取り時にどのように解析されることになっていますか?
Tin Man が指摘しているように、ここではインプレース オペレーターが最適です。
変数の名前を取得する方法がないため、実際の変数をレシーバーとして使用することはできません。代わりに、次のように変数の名前を使用する必要があります。
class A
attr_accessor :value
def change_to_do_something name
instance_variable_set(name, "do something")
end
end
a = A.new
a.value = "Hello"
p a.value
# => "Hello"
a.change_to_do_something(:@value)
p a.value
# => "do something"