2012-07-31 5 views
0

해시 값을 매개 변수로 사용하는 메소드 met1이 있습니다. 예를 들어Ruby의 메소드에 해시 값을 매개 변수로 전달

: 나는 방법을 정의 할 때 met1('abc' => 'xyz')

어떤 구문이되어야 하는가? 이렇게 될 수 있습니까?

def met1(options) 
    puts options 
end 

위의 구문이 작동한다는 것을 알고 있습니다. 그러나 met1 내부의 개별 해시 키와 값에 어떻게 액세스 할 수 있습니까? (여기서 키는 abc이고 값은 xyz입니까?) 감사합니다!

답변

1

그게

met1("abc" => "xyz") 

def met1(options) 
    puts options 
    # with key 
    puts options["abc"] 
end 

: 그것은 그래서 당신의 예에서, 키로 기호를 사용하는 관례? 내가 말하기를했다

def met1(options) 
    puts options.keys # options is the hash you passed it, use it like one 
end 
+0

을 작성해야합니다 options.keys가 작동하는 두 번째 방법에서는 [ "abc"] 옵션을 사용하지 않고 값을 인쇄하려면 어떻게해야합니까? – user1562464

+1

"options.values"를 사용하여 값을 얻을 수 있습니다. –

+0

고마워요 !!! – user1562464

1

구문이 정확합니다. 당신의 메소드에서 옵션 '[key'] ('key'가 문자열 인 경우)을 사용하기 만하면됩니다. 난 당신이 옵션은 오른쪽 키의 측면에서 포함되어있을 수 있습니다 무엇을 알고 있다고 가정 쉽게

met1(:abc => 'xyz') 

def met1(options) 
    puts options[:abc] 
end 
+0

이 아닌 경우 정의되지 않은 로컬 키는 옵션을 작성해야하는 문자열 [ '키'] 인 경우 키 – user1562464

+0

변수입니다. 그것이 심볼이라면 options [: key] – davidrac