어레이란 무엇입니까?
배열은 기본 제공 Ruby 클래스로 0개 이상의 항목 목록을 보유합니다. , 그리고 이러한 모든 항목을 쉽게 추가, 액세스 및 반복하는 데 도움이 되는 메서드가 포함되어 있습니다.
배열이 존재하지 않으면 많은 변수를 사용해야 하기 때문에 이것은 유용합니다.
예 :
a = 1 b = 2 c = 3
하지만 대신 할 수 있습니다. :
numbers = [1, 2, 3]
가장 좋은 점은?
배열 안에 무엇이든 넣을 수 있습니다!
좋아요 :
- 숫자
- 문자열
- 더 많은 어레이! (다차원 배열이 됩니다)
어레이를 최대한 활용할 수 있도록 어레이에 대해 자세히 알아보겠습니다.
내용
- 1개의 배열이 0으로 인덱싱됨
- 루비 배열 메서드 2개
- 3 배열을 문자열로 변환하는 방법
- 4개의 다차원 배열(2D 배열 등)
- 5 Ruby 배열을 반복하는 방법
- 6 음수 인덱싱
- 7가지 추가 어레이 작업
- 여러 배열을 사용한 8가지 연산
- 9 결론
- 9.1 관련
배열은 0으로 인덱싱됩니다.
요소에 액세스할 수 있습니다. 색인을 사용하는 배열 내부 , 0에서 시작합니다.
"cat", "dog" 및 "tiger"라는 단어가 포함된 배열이 있는 경우 다음과 같습니다.
다음은 그림의 데이터를 나타내는 코드 예입니다.
["cat", "dog", "tiger"]
지금 :
어레이로 무엇을 할 수 있는지 알게 될 것입니다!
루비 배열 방법
배열을 생성하는 방법부터 시작해 보겠습니다.
빈 배열을 만든 다음 새 항목을 추가하거나 시작 값으로 배열을 만들 수 있습니다.
빈 배열 초기화 :
users = []
데이터로 배열 초기화 :
users = ["john", "david", "peter"]
문자열 전용 배열을 생성하는 경우...
%w
로 배열을 생성하여 모든 문자열에 따옴표를 입력하지 않아도 됩니다. .
예 :
users = %w(john david peter)
이제 배열이 있으므로 포함된 요소에 액세스할 수 있습니다.
방법은 다음과 같습니다. :
users[0] # First element of the array users[1] # Second element of the array users[2] # Third element of the array
첫 번째 및 마지막 방법을 사용할 수도 있습니다.
users.first # First element of the array users.last # Last element of the array
배열에 항목을 추가하는 방법은 다음과 같습니다.
# Both of these have the same effect, << is preferred. users.push "andrew" users << "andrew"
배열에서 요소를 삭제하는 방법은 다음과 같습니다.
last_user = users.pop # Removes the last element from the array and returns it user.delete_at(0) # Removes the first element of the array
pop/push와 비슷하지만 배열 앞에 요소를 가져오거나 추가하는 shift &unshift 방법도 있습니다.
users.unshift "robert" # Adds an element in front of the array users.shift # Removes the first element of the array and returns it
이 배열에 특정 항목이 포함되어 있습니까?
Ruby의 배열에 값이 있는지 확인:
numbers = [1,2,3] numbers.include?(2) # true numbers.include?(10) # false
배열의 길이는 얼마입니까? (즉, 얼마나 많은 요소가 포함되어 있는지)
words = ["cat", "coconut", "bacon"] words.size # 3
여기에 작은 치트시트가 있습니다. :
작업 | 방법 |
---|---|
초기화 | Array.new, [], %w |
읽기 | [0], 처음, 마지막 |
추가 | 푸시, <<, 쉬프트 해제 |
제거 | 팝, 삭제_at, 시프트 |
배열을 문자열로 변환하는 방법
Array#join
을 사용하여 모든 배열을 문자열로 변환할 수 있습니다. 방법.
예시 :
letters = %w(a b c d) letters.join # "abcd"
이 메서드는 1개의 선택적 매개변수를 사용하므로 함께 결합될 때 배열 요소 사이에 구분 기호를 정의할 수 있습니다.
letters = %w(a b c d) letters.join(" ") # "a b c d"
문자열에서 배열로 역동작을 원하면 split
를 사용하고 싶습니다. 방법:
"a b c".split
결과:
["a", "b", "c"]
다차원 배열(2D 배열 등)
배열은 다른 배열로 구성될 수 있으며 이를 다차원 배열이라고 합니다.
2차원 배열의 예 :
users = [ [1, 'Peter'], [2, 'Steven'] ]
첫 번째 하위 배열의 첫 번째 요소에 액세스하려면 다음 구문을 사용할 수 있습니다.
users[0][0] # 1
그리고 첫 번째 하위 배열의 두 번째 요소:
users[0][1] # 'Peter'
다차원 배열을 일반 배열로 변환하고 싶은 경우가 있습니다.
평면화 방법을 사용하여 이를 수행할 수 있습니다.
users.flatten # [1, "Peter", 2, "Steven"]
루비 배열을 반복하는 방법
이제 배열이 있으므로 그 내용을 열거하고 인쇄할 수 있다면 좋지 않을까요?
좋은 소식은 할 수 있다는 것입니다!
예 :각각을 사용하여 배열을 인쇄하십시오.
users.each { |item| puts item }
값과 인덱스를 모두 사용해야 하는 경우 배열의 각 인덱스 방법을 사용할 수 있습니다.
users.each_with_index { |item, idx| puts "#{item} with index #{idx}" }<블록 인용>
참고 :이러한 반복 작업의 대부분은 기본적으로 Array 클래스에 혼합되어 있는 Enumerable 모듈 덕분에 사용할 수 있습니다.
예 :지도를 사용하여 배열의 모든 단어를 대문자로 표시합니다.
users = users.map { |user| user.capitalize } users = users.map(&:capitalize)
map
메서드는 배열을 제자리에서 수정하지 않고 수정된 요소가 있는 새 배열을 반환하므로 결과를 다시 변수에 할당해야 합니다.
지도!가 있습니다. (느낌표에 주의) 배열을 직접 수정하지만 일반적으로 더 간단한 버전이 선호되는 메서드입니다.
또 다른 방법은 특정 기준에 맞는 배열의 모든 항목을 찾는 것입니다.
예 :10보다 큰 모든 숫자 찾기:
numbers = [3, 7, 12, 2, 49] numbers.select { |n| n > 10 } # => 12, 49
네거티브 인덱싱
Ruby 배열에서 특정 요소에 액세스하려면 인덱싱(또는 first
&last
).
하지만 음수 색인은 어떻습니까?
-1
과 같은 것을 사용하는 것에 대해 이야기하고 있습니다. 배열 인덱스로 사용합니다.
Ruby는 배열의 끝에서 시작합니다. 따라서 -1
마지막 항목인 -2
를 얻습니다. 등을 통해 두 번째로 안내해 드립니다.
예 :
letters = ["a", "b", "c"] letters[-1] # "c" letters[-2] # "b"
더 많은 어레이 작업
배열을 정렬하거나 임의의 요소를 선택하는 것과 같이 배열을 사용하여 수행할 수 있는 많은 작업이 있습니다.
정렬 방법을 사용하여 배열을 정렬할 수 있습니다. 배열에 문자열이나 숫자만 있으면 잘 작동합니다. 고급 정렬은 sort_by를 확인하세요.
numbers = numbers.sort
배열에서 중복 요소를 제거할 수도 있습니다. 이 작업을 자주 수행하는 경우 대신 Set을 사용하는 것이 좋습니다.
numbers = [1, 3, 3, 5, 5] numbers = numbers.uniq # => [1, 3, 5]
이것은 어레이를 영구적으로 변경하지 않습니다. 대부분의 Ruby 메서드는 요청한 변경 사항으로 새 배열을 생성합니다. 따라서 결과를 저장하려면 변수를 사용해야 하거나 이 예에서 uniq!
를 사용하세요. 방법.
배열에서 임의의 요소 하나를 선택하려면 sample
을 사용할 수 있습니다. 방법:
numbers.sample
전체가 아닌 일부를 차지하는 어레이를 "슬라이스"할 수도 있습니다.
예 :변경하지 않고 배열에서 처음 3개 요소를 가져옵니다.
numbers.take(3) numbers[0,3]
더 고급 Ruby 배열 슬라이싱을 수행할 수 있습니다. 예를 들어 첫 번째 요소를 제외한 모든 요소를 가져올 수 있습니다.
numbers[1..-1]
쉼표(0,3
) 및 범위(1..-1
). 첫 번째 항목은 "인덱스 0에서 시작하는 3개의 요소 가져오기"라고 말하고 마지막 항목은 "이 범위의 문자 가져오기"라고 말합니다.
배열 크기 가져오기:
numbers.size # 5
배열이 비어 있는지 확인:
numbers.empty? # false
nil
제거 값:
numbers << nil # [1, 3, 3, 5, 5, nil] numbers.compact # [1, 3, 3, 5, 5]
여러 배열을 사용한 작업
두 개의 배열이 있고 이를 하나로 결합하거나 병합하려는 경우 다음과 같이 할 수 있습니다.
# Faster, because this changes the users array users.concat(new_users) # Slower, because this creates a new array users += new_users
다음과 같이 하나의 배열에서 요소를 제거할 수도 있습니다. 여기서 users_to_delete
또한 배열입니다:
users = users - users_to_delete
마지막으로 동시에 두 개의 배열에 나타나는 요소를 가져올 수 있습니다.
users & new_users
결론
Ruby 배열은 매우 유용하며 당신의 곁에서 강력한 동맹이 될 것입니다.
배열을 만들고, 배열에 요소를 추가하고, 인덱스로 요소에 액세스하는 등의 방법을 연습하세요. 또한 더 흥미로운 코드를 작성하기 위해 배열과 결합할 수 있는 또 다른 중요한 클래스인 Ruby 해시에 대해 읽어보세요.
연습이 완벽을 만듭니다!
이 정보가 유용했다면 이 게시물을 공유하고 아래 내 뉴스레터를 구독하세요 🙂