Ruby에는 each_cons
이라는 열거 형의 편리한 함수가 있습니다. 어느 "연속 요소의 각 배열에 대해 주어진 블록을 반복합니다." 이것은 정말로 멋지다. 이것은 each
메소드를 제외하고는 완료시에 nil을 반환하고 루프 된 값의 배열은 map
처럼 반환하지 않습니다.루비가 열거 형 map_cons 메소드 또는 이와 동등한 메소드를 지원합니까?
그러나 열거 형을 반복 할 필요가있는 상황에서 요소와 해당 단점을 취한 다음 일부 작업을 수행하고 다시 배열로 반환 할 수 있습니까? 일반적으로, 나는 이런 종류의 행동을 위해 map을 사용할 것입니다. 그러나 map_cons
은 존재하지 않습니다.
예 :
[1, 1, 4, 5, 6, 2, 2].each_cons(2) {|e| e[0] if e[0] == e[1]}
:
는 정수의 목록을 감안할 때, 내가 말할 수있는 바로 그 정수
[1, 1, 4, 5, 6, 2, 2] ## I need some function that will get me [1, 2]
을 목록을 그 정수의 사람이 반복되는보고 반환해야
그러나 어레이에 대해 each
이 있으므로 성공적으로 완료되고 끝에 nil
을 반환합니다. map
처럼 동작하고 each
을 좋아하지 않아야합니다.
ruby가 지원하는 동작입니까? 내가 완전히 잘못된 방향에서 오는 것인가?
우리는 쌍을 다루기 때문에'map {| a, b | a == b}'이면. –
아마도 정말로 인상적이지는 않지만 블록이없는 열거 자 (enumerator)는 여전히 유용 할 수 있습니다. 예 :'enum = [: even, : odd] .cycle # => # <열거 자 : [: even, : odd] :주기>; enum.next; # => : 짝수; enum.next # => : 홀수; enum.next # => : 심지어'... –