문제

나는 아직도 내의 텍스트 모험이다.문제가 있으로 사용할/기능을 가진.그것은 의미를 부르는 해시에는 키가 사용하는 개체는 콘텐츠를 포함 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!
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top