ABOUT ME

Today
Yesterday
Total
  • 루비 변수 바인딩 내부 루프
    카테고리 없음 2020. 8. 16. 15:25

    질문

    별칭 해시를 반복하고 Ruby class의 별칭 해시 값을 할당하여 헤더 배열을 변환해야합니다.

    헤더 배열을 변환 한 다음 루프 후에 사용할 수없는 것 같습니다.

    루프 이후에 사용할 수 있도록 헤더 배열을 어떻게 변환합니까?

     header = ["City", "State"]
    
     aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
    
     aliases.each do |k,v|
       header.each do |s|   
         if s == k then
           s = v            
         end
       end
     end
    
     puts header

    답변1

    다음과 같이 시도하십시오.

    header = ["City", "State"]
    
     aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
    
     aliases.each do |k,v|
       header.each do |s|   #doesn't see header variable
         if s == k 
          header[header.index(s)] = v            #doesn't see v variable
         end
       end
     end
    
     puts header

    내가 옳았는지 모르겠어요. 당신이 찾고있는 거라고 생각 해요. 행운을 빕니다!

    편집 : 여전히 다음과 같이 단순화합니다.

    header = ["City", "State"]
    
    aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
    
    header.each do |s|
      aliases.select{|k,v| k==s}.each do |k,v|
        header[header.index(s)] = v
      end
    end
    puts header


     

     

     

     

    출처 : https://stackoverflow.com/questions/48566703/ruby-variable-binding-inside-loops

    댓글

Designed by Tistory.