Ruby 배열 생성
Ruby는 배열 객체를 인스턴스화하는 여러 직관적인 방법을 제공합니다.
-
배열 리터럴:
fruits = ["apple", "banana"],empty = [] -
Array.new:arr = Array.new(5)(nil로 채워짐),arr = Array.new(3, "default")(기본값 지정),arr = Array.new(3) { [] }(가변 기본값 문제 방지) -
%w{}: 단어 배열 생성,words = %w{one two three} -
Array(range): 범위에서 배열 생성,digits = Array(0..9)
요소 접근 및 슬라이싱
-
인덱서
[]:arr[0](첫 번째 요소),arr[-1](마지막 요소), 범위를 벗어나면nil반환. -
fetch(index, default): 안전한 접근,IndexError발생 또는 기본값 반환. -
at(index): 단일 인덱스 접근. -
슬라이싱:
arr[1..2](포함 범위),arr[1, 2](시작 인덱스, 길이),arr.slice(0, 2). -
first,last: 첫/마지막 요소 또는 여러 요소를 반환.
배열 수정: 요소 추가 및 제거
-
추가:
push또는<<(끝에 추가),unshift(앞에 추가),insert(index, *elements)(특정 위치에 삽입),concat(another_array)(다른 배열 연결, 원본 수정). -
제거:
pop(끝에서 제거),shift(앞에서 제거),delete_at(index)(특정 인덱스 요소 제거),delete(value)(특정 값의 모든 인스턴스 제거). -
slice!(start, length): 배열의 일부를 제거하고 반환 (원본 수정). -
clear: 배열을 비움. -
compact,compact!:nil값 제거. -
uniq,uniq!: 중복 값 제거.
반복 및 변환
-
each: 각 요소를 블록에 전달, 원본 배열 반환.reverse_each. -
map(또는collect): 각 요소를 변환하여 새 배열 반환.map!은 원본 수정. -
each_with_index: 요소와 인덱스를 함께 전달. -
reduce(또는inject): 블록을 사용하여 값을 집계 (예: 합계).
검색 및 선택
-
include?(value): 요소 포함 여부 확인. -
index(value): 첫 번째 일치하는 요소의 인덱스 반환.rindex는 마지막 일치 인덱스 반환. -
find(또는detect): 첫 번째 일치하는 요소 반환. -
select(또는find_all): 모든 일치하는 요소를 새 배열로 반환.select!는 원본 수정. -
reject: 조건을 만족하지 않는 요소들을 새 배열로 반환. -
any?,all?: 조건에 맞는 요소 존재 여부 확인. -
count: 요소 개수 또는 조건에 맞는 요소 개수. -
flatten: 중첩된 배열 평탄화. -
assoc(key): 키-값 쌍 배열에서 키에 해당하는 서브 배열 찾기.
정렬, 섞기 및 기타 유틸리티
-
sort,sort!: 오름차순 정렬. 블록으로 사용자 정의 정렬. -
sort_by: 복잡한 객체를 특정 속성으로 정렬. -
shuffle,shuffle!: 배열 요소를 무작위로 섞음. -
sample,sample(n): 무작위 요소 또는 n개의 무작위 요소 선택. -
rotate: 요소를 회전. -
permutation,combination: 순열 및 조합 생성. -
join(separator): 배열 요소를 문자열로 결합.