Ruby에서 Array 클래스의 shift 및 unshift 메서드가 수행하는 작업을 이해하는 데 어려움을 겪고 있습니다. 누가 그들이하는 일을 이해하도록 도와 줄 수 있습니까?
답변
상기 찾고 루비 문서
Array.shift는 배열에서 첫 번째 요소를 제거하고이를 반환합니다.
a = [1,2,3]
puts a.shift
=> 1
puts a
=> [2, 3]
Unshift는 제공된 값을 배열 앞에 추가하여 다른 모든 요소를 위로 이동합니다.
a=%w[b c d]
=> ["b", "c", "d"]
a.unshift("a")
=> ["a", "b", "c", "d"]
답변
shift
와 unshift
유사한 방식으로 작동 pop
하고 push
: 그들은 당신이 추가 할 수있는에 스택 및 제거 요소 (시간당 보통 하나)로 사용 배열에 의미가있다. 차이점은 단지이다 shift
및 unshift
의 시작 / 제거 요소를 추가 Array
실제로 시프트를 다른 모든 요소를 보내고, 반면 pop
과 push
의 끝에 / 제거 요소를 추가 Array
하므로 다른 요소의 인덱스를 유지.
예 :
# Spacing for clarity:
a = [2, 4, 8] # a => [2, 4, 8]
a.push(16, 32) # a => [2, 4, 8, 16, 32]
a.unshift(0, 1) # a => [0, 1, 2, 4, 8, 16, 32]
a.shift # a => [1, 2, 4, 8, 16, 32]
a.pop # a => [1, 2, 4, 8, 16]
답변
첫 번째 요소를 잡고 배열에서 제거하고 제거 된 요소를 반환합니다. 기본적으로 배열을 스택처럼 처리하는 방법 shift
입니다. 팝, unshift
푸시입니다.
답변
배열을 처리 할 값의 대기열과 같은 것으로 생각할 수 있다면 다음 (앞) 값을 가져 와서 다른 값을 “이동”하여 사용 가능한 공간을 차지할 수 있습니다. unshift는 값을 다시 넣습니다. 아마도 여러분은 그것들 중 일부를 처리 할 준비가되지 않았거나 나중에 코드가 그것들을 처리하도록 할 것입니다.
답변
배열의 첫 번째 요소를 반환하고 배열에서 제거 하여 요소를 한 위치 뒤로 이동 합니다.
그래서 이동 [1,2,3,4,5]
을 반환 1
하고 배열을로 설정합니다 [2,3,4,5]
.
여기 더 .