Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby의 Array 클래스를 사용하는 방법(예제 + 유용한 메소드)

어레이란 무엇입니까?

배열은 기본 제공 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"라는 단어가 포함된 배열이 있는 경우 다음과 같습니다.

Ruby의 Array 클래스를 사용하는 방법(예제 + 유용한 메소드)

다음은 그림의 데이터를 나타내는 코드 예입니다.

["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 해시에 대해 읽어보세요.

연습이 완벽을 만듭니다!

이 정보가 유용했다면 이 게시물을 공유하고 아래 내 뉴스레터를 구독하세요 🙂