これが私の簡単なテストコードです:
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