これが私の簡単なテストコードです:
def test_function
0.tap do |v|
v += 10
end
end
p test_function
なぜここで0になるのですか?私は10を得るのを待っていました。
アップデート:
class TestClass
def initialize
@v = 0
end
def inc
@v = @v + 1
end
end
def test_function
0.tap do |v|
v += 10
end
end
def test_function_2
TestClass.new.tap { |obj|
obj.inc
}
end
p test_function
p test_function_2
0
TestClass:0x29244f0 @ v = 1