Ruby에서 다차원 배열을 만드는 방법. Ruby는 다차원 배열에 대한 명시적인 지원을 제공하지 않지만 언어에 대한 기본 지식이 있으면 직접 구현할 수 있습니다. 본질적으로 배열의 각 요소가 또 다른 배열을 보유하는 "배열 배열"을 만들어야 합니다. Ruby에서 이러한 다차원 배열을 생성하려면 코드를 반복할 필요가 없도록 배열 배열을 생성하는 데 사용되는 메서드를 작성할 수 있습니다.
Ruby에서 다차원 배열 만들기
1 단계
메소드의 골격을 작성하십시오. 이 메서드는 여러 차원 인수를 사용하고 해당 차원의 빈 다차원 배열을 반환합니다. 예를 들어, 10x10 배열의 경우 이 메서드를 호출합니다. mda (10,10):def mda (width, height) end
오늘의 비디오
2 단계
너비 요소의 배열을 만듭니다.
3단계
배열의 모든 요소에 대해 높이 요소의 배열을 만듭니다. 이것은 2차원 배열로 사용될 "배열의 배열"을 만듭니다. 특정 길이의 빈 배열을 만들려면 길이와 함께 Array.new 생성자를 인수로 사용하십시오. 처음에는 배열의 모든 값이 nil이 됩니다.
4단계
지도를 이용하세요! 방법도. 지도! 메서드는 배열의 모든 요소를 반복하고, 모든 요소에 대해 블록을 실행하고, 블록의 결과를 배열 요소에 할당합니다. for 루프를 사용하여 동일한 결과를 얻을 수 있지만 map! 메서드가 더 간결합니다. def mda(너비, 높이) a = Array.new(너비) a.map! { Array.new(높이) }끝을 반환
5단계
아래 첨자(대괄호[]) 연산자와 함께 이 배열을 사용하십시오. 예를 들어 "a"라는 10x10 배열이 있고 7,3 요소를 원하면 a[7][3]: a = mda (10,10)# 배열을 값으로 채우기a[7][5] = "a string"a[2][9] = 23# 값 검색puts a[7][5]puts a[2][9]
6단계
Ruby에서 메소드 호출을 "연결"하는 기능을 활용하십시오. 예를 들어 Array.new 메서드는 배열을 반환합니다. 다른 메서드 호출을 여기에 연결하여 반환된 배열에서 메서드를 호출할 수 있습니다. 메서드를 연결하고 return 문을 사용하지 않기 때문에 변수 이름도 필요하지 않습니다. def mda (width, height) Array.new (width).map!{ Array.new (height) }end
팁
루비는 표현력이 뛰어납니다. MDA 방법은 짧고 간결한 한 줄의 코드일 수 있습니다. 추가 라인과 키워드는 코드를 실제보다 더 복잡하게 보이게 합니다. Ruby에서는 return 문이 필요하지 않습니다. Ruby 메서드 및 블록은 메서드 또는 블록에서 마지막으로 실행된 명령문의 결과를 자동으로 반환합니다.