을 사용하는 경우 문자열 변수를 수정할 수있게합니다. 이상한 행동으로 다른 사람이 내가 본 것을 확인할 수 있는지 궁금해합니다.Ruby attr_reader는 <<
멤버 변수를 사용하여 클래스를 만들고 attr_reader로 읽을 수 있도록한다고 가정합니다. 다음과 같은 처리를 할 때
class TestClass
attr_reader :val
def initialize(value)
@val = value
end
end
지금, 내가 단지 그것을 읽기 권한 부여에도 불구하고, @val의 값을 수정할 것으로 보인다.
test = TestClass.new('hello')
puts test.val
test.val << ' world'
puts test.val
이이 항상 사실이
'attr_reader'는 값을 설정할 수 없다는 것을 의미합니다. 즉,'value ='메소드가 정의되어 있지 않습니다. 확실히 당신이 객체에 대한 메서드를 호출 할 수 없다는 것을 의미하지는 않습니다. –