각각에 대한 혼란, 수집, 선택 및 매핑 방법

3760 단어 methodarrayrailsruby
직장 생활 초기에 Ruby 프로그래밍 언어를 배울 때 each , collect , selectmap 방법에 대한 몇 가지 문제에 직면합니다. 그래서 초보 레이블 프로그래머를 위해 이 글을 씁니다. 처음에는 많은 프로그래머들이 each , collect , select , map 메소드에 대해 혼란스러워했습니다. 그렇기 때문에 저와 다른 사람들이 혜택을 받을 수 있도록 이 글을 씁니다. Ruby 프로그래밍 언어를 사용하고 있습니다. 인턴십을 할 때 작성한 메모입니다.

이 문서에서는 다음을 다룹니다.

Confusion about each, collect, select and map method



배열을 반복하는 것은 간단하며 each 방법을 사용합니다. each 메서드는 배열의 각 요소를 통과하여 우리가 제공하는 코드 블록에 매개 변수로 전달합니다.

 [1, 2, 3, 4].each {|x| puts x + 3}


산출:

4
5
6
7


블록에만 유효합니다.

 [1, "Emran", 2, 3, 4].each {|x| puts x.to_s + "Hasan"}


산출:

1Hasan
EmranHasan
2Hasan
3Hasan
4Hasan


그러나 블록 뒤에 같은 것을 넣을 때. 이번에는 원래 값을 인쇄합니다.

array = [1, "Emran", 2, 3, 4].each {|x| x.to_s + "Hasan"}
puts "array #{array}"


산출:

array [1, "Emran", 2, 3, 4]

collect 메서드를 사용하여 즉시 배열을 변환할 수도 있습니다.

[1, 2, 3, 4].collect {|x| puts x * 3 }


산출:

3
6
9
12


그러나 블록 뒤에 배열 값을 넣으면 변경되고 새 배열이 인쇄됩니다.

array_collect = [1, 2, 3, 4].collect {|x| x * 3 }
puts "array_collect #{array_collect}"


산출:

array_collect [3, 6, 9, 12]


그리고 또 다른 중요한 배열 방법은 select 입니다. Select 메서드는 조건에 따라 새 배열을 만듭니다. 배열에 짝수 및 홀수와 같은 많은 요소가 있다고 가정합니다. 하지만 짝수나 홀수만 인쇄하면 됩니다. 이러한 상황에서는 select 방법을 사용해야 합니다.

Hinds: select method used for conditional purpose and this creates a new array.



array_select = [1, 2, 3, 4, 6, 8, 9].select do |i|
   i % 2 == 0
end
puts "array_select: #{array_select}"


산출:

array_select: [2, 4, 6, 8]


여기서는 짝수만 인쇄하지만 배열에는 짝수와 홀수가 있습니다. 따라서 우리는 짝수만 인쇄해야 하므로 선택 방법을 사용하고 블록에서 홀수 조건을 사용했습니다.

 i % 2 == 0


마지막으로 주어진 배열에서 짝수를 필터링합니다.
Collect 배열 요소를 요소별로 반복하고 해당 요소에 코드 블록 내 표현식의 결과를 할당합니다.

Hinds: map is functionally equivalent to collect.



루프를 사용하여 모든 요소의 배열에 액세스할 수 있습니다. 다음은 기본 루프입니다.

# access element using loop and add a strings
a = [11, 45, "hasan", 46, 'sajon']
i = 0
while (i < a.length)
   puts a[i].to_s + "Amin"
   i += 1
end


산출:

11Amin
45Amin
hasanAmin
46Amin
sajonAmin


이것은 each 방법과 유사한 방식으로 작동합니다. 반복자, 코드 블록, eachcollect와 같은 메서드가 코드를 읽고 이해하기 훨씬 쉽게 만들어 주기 때문에 Ruby에서 선호되는 이유를 누구나 즉시 알 수 있습니다.

이 두 단어는 배열을 변경합니다.
고르다!
수집!
지도!

Hinds: map is functionally equivalent to collect.



감사합니다. 더 많은 연습을 위해 눈을 떼지 마십시오. 이것은 나의 첫 번째 기사입니다. 이에 대한 여러분의 생각을 자유롭게 공유해주세요. 오류가 있으면 수정하도록 노력하겠습니다. 실수가 있더라도 용서해 주십시오.

행복한 코딩 😀😀😀

좋은 웹페이지 즐겨찾기