Ruby (1.8)에서 비슷한 것을 어떻게 할 수 있습니까? 내 목표는 변수를 할당하는 해시 키의 변수를 사용하는 것입니다.Ruby에서 중첩 해시에 동적 변수 이름을 사용하는 방법은 무엇입니까?
@keys=""
my_hash = Hash.new { |h,k| h[k]=Hash.new(&h.default_proc) }
line="long:keys:are:here:many:of:them:dont:know:how:much"
line.split(':').each { |x|
@[email protected]+'["'+x+'"]'
}
my_hash#{@keys}=1
#I would like to assign a variable for the following.
# my_hash["long"]["keys"]["are"]["here"]["many"]["of"]["them"]["dont"]["know"]["how"]["many"]=1
: (당신이 요청에 따라 마지막 1 인으로, 당신은 모든 subhashes에 포인터를 찾고 있었다 즉 큰 해시)이 출력을 생성
"동적 변수 이름"을 사용하지 말고 제공된 원칙을 사용하십시오. 'hashN [keyN] = valueN'과'hashN + 1 = valueN' 행을 구문 분석 할 때 "chain"을 빌드합니다. 다른 사람들은'inject'라는 작은 예제를 제공 할 것입니다. –
이것이 당신이 원하는 것입니까? "long : keys : are : 여기 : many of :"로 지정하면 그 아래 모든 것을 지울 것입니다. 확실하다면 "자동 노출"(예 : http://stackoverflow.com/search?q=%5Bruby%5D+autovivification)을 찾으십시오. –
청구서, 좋은 지적입니다. 전체 코드를 공유하지는 않았지만 키의 일부가 이미 존재하는지 확인하고 싶습니다. – Istvan