다음과 같은 문제가 있습니다. 나는 method_A를 호출하는 객체 이름을 검사하는 method_A라고 부르기로한다.루비 호출자 가져 오기 개체 이름 내부 메서드 기본 라이브러리
이것은 간단한 참조입니다.하지만 내가하는 일은 훨씬 더 복잡 할 것입니다. 나는 훨씬 더 좋은 방법으로 필요한 것을 해결할 수있는 대안이 있다는 것을 이해합니다. 그러나 아쉽게도 코드는 거의 완료되었습니다. 그리고 나는 많은 것을 조정할 충분한 시간이 없다. 어쨌든, 여기 간다 :
class Picture
attr_accessor :size
def resize
name = self.get_object_name_here
case name
when Big #Can be string or variable, I don't mind
self.size *= .5
when Medium
when Small
self.size *= 2
else
end
def get_object_name_here
object_name
end
end
Big = Picture.new
Medium = Picture.new
Small = Picture.new
Big.size = 10
Medium.size = 10
Small.size = 10
Big.resize => 5
Medium.resize => 10
Small.resize => 20
을 수있는 방법이 있다면 바로
이 크게 감사합니다 도움이 될 것
name = object_name
을 할!
편집 : 대문자로 표시된 대문자, 중간, 소문자는 유감스럽게 생각합니다. 그들은 오타입니다.
에
결과 :이 같은 클래스를 사용할 수 있습니까? 당신의 예에서 그들은 '빅, 중, 소'가 될 것입니까? –
예, 그렇습니다. 빅, 중형 및 소형입니다. – user3163916
'Picture' 객체에 할당 된 변수의 이름이므로 달성하고자하는 것이 가능하지 않다고 생각합니다.'Picture'는 어떤 변수를 사용하고 있는지 알 수 없습니다. –