구 원트노/루비 기초
[루비 기초]4장 배열배열
기존의 데이터를 저장하는 방식은 변수를 사용했습니다.그러나 이 방법은 하나의 변수에 하나의 데이터만 저장 가능합니다.하나의 변수에 여러 개의 값을 저장하는 방법을 배열이라 합니다.
변수와 배열 비교
1 2 3 4 5 | my_foo1=1 #변수 사용 my_foo2=2 my_foo3=3 my_array=[1,2,3] #배열 | cs |
3개의 변수로 처리하던 작업을 배열을 사용하니 한 줄로 해결됩니다.
배열 생성1
1 | people=["jake",12,3.14,false] | cs |
배열은 '[]'안에 요소가 될 값을 쉼표 구분으로 기술합니다.
하나의 배열에 형이 다른 요소들을 집어넣을 수 있습니다.
보시면 people 배열에는 string형과 int형, float형, boolean형을 동시에 포함하고 있습니다.
배열 생성2
1 2 3 | people=%w(jake jane bob) # ["jake", "jane", "bob"] animal= Array.new # [] | cs |
1번째 줄 방법은 %w()안에 문자를 집어넣으면 공백을 구분으로 문자열 배열로 변환해줍니다.
다음 방법은 비어있는 배열을 생성하는 방법입니다.
배열 요소 출력
1 2 3 4 5 6 | people=["jake",12,3.14,false] puts people[0] #jake puts people[1] #12 puts people[3] #false puts people[10] #nil | cs |
배열 안의 각 요소들은 색인(index)을 가지고 있습니다.
첫 번째 요소는 0의 인덱스, 그 다음은 1 이런 식으로 계속 되어집니다.
그리고 이 인덱스를 통해 각 요소의 데이터를 출력할 수 있습니다.
3번째 줄을 보면 people[0]으로 0인덱스에 위치한 "jake"에 접근했습니다.
그렇다면 데이터가 존재하지 않는 인덱스를 지정한 경우 어떻게 될까요?
6번째 줄이 그 예인데 nil이 반환됩니다.
배열 요소 출력2
1 2 3 4 5 6 7 | people=["jake",12,3.14,false] people.values_at(1) #[12] people.values_at(1,3) #[12,false] people.first #["jake"] people.last #[false] people.sample #[12] | cs |
values_at()은 복수의 인덱스의 요소를 가져올 때 사용합니다.
first는 배열 처음 데이터 last는 마지막 요소를 가져옵니다.
sample은 배열 요소 중 무작위로 출력됩니다.
배열 요소 추가 삭제
1 2 3 4 | animal= Array.new # [] animal << "monkey" # ["monkey"] animal.push "lion" # ["monkey", "lion"] animal.pop # ["monkey"] | cs |
배열 끝에 요소를 하나 추가하려면 <<나 push를 사용하면 됩니다.
끝에 요소를 제거할 때는 pop을 사용합니다.
배열 변경
1 2 3 4 5 6 7 8 9 | array = [false,nil,0,1,1] array.compact #[false,0,1,1] array.uniq #[false,nil,0,1] int_array = [4,5,2,8,1] int_array.sort #[1,2,4,5,8] int_array.reverse #[1,8,2,5,4] | cs |
compact는 nil을 제거한 새로은 배열을 반환합니다.
uniq는 중복을 제거합니다.
sort는 오름차순 정렬 작업을 합니다.
reverse는 요소 순서를 역으로 변경한 새로운 배열을 반환합니다.
궁금하신 점 있으시면 댓글 남겨주세요!!
'구 원트노 > 루비 기초' 카테고리의 다른 글
[루비 기초]5장 해쉬와 심볼 (0) | 2017.01.26 |
---|---|
[루비 기초]3장 기초 반복문 (0) | 2017.01.24 |
[루비 기초]2장 연산자와 제어문 (2) | 2017.01.23 |
[루비 기초]1장 변수,주석,숫자와 문자열,입력 출력 (0) | 2017.01.10 |