저장 proc 내부에 배열 내에 해시
문제
나는 아직도 내의 텍스트 모험이다.문제가 있으로 사용할/기능을 가진.그것은 의미를 부르는 해시에는 키가 사용하는 개체는 콘텐츠를 포함 array;첫 번째 요소는 배열에 있는 대상체,그리고 두 번째는 Proc 는 것이 실행되는 경우에는 관계를 회전하는 인수와 일치에 대한 사용할/기능을 가진.
시기 바랍 수 있습니다,당신을 명확히 나 어떻게 저장할 수 있는 코드 블록 안에는 배열 내에 해시 그래서 내가 기억이 나중에 개체에 따라고 있는 어떤가요?
여기에는 내가 사용하는 함수를 사용" 체 가 가":
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1]
end
end
이것은 어떻게 정의된 관계는(그래서 멀리 하나만 있을 때):
INTERACTIONS = {"key" => ["clock", p = Proc.new{puts "You open the clock!"}]}
제 유형
use key with clock
그것은 반환 하지만 아무것도 새로운 프롬프트 라인.
해결책
당신이 잊고 .call
proc:
INTERACTIONS = {"key" => ["clock", Proc.new {puts "You open the clock!"}]}
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1].call # procs need to be `call`ed :)
end
end
use("key", "clock") # => You open the clock!
제휴하지 않습니다 StackOverflow