나는 내 방법을 짧게 유지하려고 노력해 왔으며 그렇게하면 다음과 같은 줄로 끝납니다.
processor = processor(arg1, arg2)
변수가 메소드와 동일한 이름을 갖는 것이 합리적입니다. 그래서 저는 self.
제가이 방법을 사용하고 있음을이 한 줄에서 명확히하기 위해 사용할 수 있다고 들었습니다 .하지만 여전히 코드를 읽는 사람은 말할 것도없고 인터프리터에게 문제를 일으킬 것 같습니다. 그러나 접두사 메서드 get_
도 이상하게 느껴집니다. 어떤 아이디어?
구문 상으로는 당신이하는 일에 아무런 문제가 없지만, 코드를 읽기에 약간 혼란스럽게 만들 가능성이 있습니다. @processor
지역 변수 대신 인스턴스 변수 를 사용하여 processor
변수와 메서드의 차이를 더 명확하게 만들 수 있지만 사용하는 위치 self
에 따라 로컬 범위뿐만 아니라 전체 에서 사용할 수 있으므로 부작용이있을 수 있습니다. .
또는 지역 변수가 가독성 측면에서 많은 가치를 추가하지 않기 때문에 반환 값이 필요한 곳에서 직접 메서드를 호출 할 수 있습니다.
귀하의 버전 :
processor = processor(:arg1, :arg2)
# do some stuff
do_something_else_with(processor)
반환 값을 직접 사용 :
do_something_else_with(processor(:arg1, :arg2))
또한 메서드에 arity 0 (즉, 인수가 없음)이 있으면 문제가 발생할 수 있습니다. 말했듯이 self
메서드 호출에 빈 괄호 (루비와 매우 유사)를 사용 하거나 추가해야합니다.
def processor
return 'something'
end
processor = processor
#=> nil
processor
#=> nil
processor = processor()
#=> 'something'
processor = self.processor
#=> 'something'
궁극적으로 처음에 고유 한 이름을 사용하는 것이 귀하의 관심사입니다. 쉽지는 않지만 시간을 보낼 가치가 있습니다. 현명한 사람 은 "컴퓨터 과학에는 캐시 무효화, 이름 지정 및 단일 오류라는 두 가지 어려운 점이 있습니다."라고 트윗했습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다