나는 높고 낮게 보였습니다. 그리고 어쩌면 저는 약간의 실천 밖에하지 못했지만, 다음과 같은 방법을 찾지 못하는 것 같습니다.Ruby의 문자열 별 액세스 멤버입니까?
문자열/기호가 있습니다 (예 : "a"
또는 :a
). 클래스 B
에는 데이터 멤버 @a
이 포함되어 있습니다. 내가 쓴 것처럼
method c, :a
과 같은 효과를 :
def method object_of_class_B, string_or_symbol_referencing_the_member
object_of_class_B.some_other_method string_or_symbol_referencing_the_member = 010
end
그래서 난 호출 할 수 있습니다 : 나는 그런 방식으로 멤버에 액세스하기 위해 찾고
c.a = 010
수 누구든지 해결책의 방향으로 나를 가리 킵니까? 내가 배우는 과정에서 Ruby의 핵심 부분을 완전히 놓쳤는가?
은'A = '방법은 인스턴스 변수'@ A'를 설정하고, 다른 아무것도하지 않는 경우에만'c.a = '새로운 value''를 호출하는 것과 같은 효과를 갖는다. 예를 들어,'c'가 active record 객체라면, instance_variable_set을 사용하면 원하는 결과를 얻지 못할 것이다. – sepp2k
두 번째 생각에도 불구하고, OP는 그가 인스턴스 변수 @a를 가지고 있다고 말했습니다. 그러니 절대 ... – sepp2k
당신 말이 맞아요. @xuinkrbin은 그/그녀가 '손짓'을하는 수업에 익숙해야합니다. – Jamie