Ruby의 Array # shift는 무엇을합니까? shift 및 unshift 메서드가

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"]

답변

shiftunshift유사한 방식으로 작동 pop하고 push: 그들은 당신이 추가 할 수있는에 스택 및 제거 요소 (시간당 보통 하나)로 사용 배열에 의미가있다. 차이점은 단지이다 shiftunshift의 시작 / 제거 요소를 추가 Array실제로 시프트를 다른 모든 요소를 보내고, 반면 poppush의 끝에 / 제거 요소를 추가 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].

여기 더 .