[Rubby] 클래스를 삽입하는 유사한 방법

find_all / select


모든 블록에 포함된 방정식을 실제 요소로 변환하는 패턴을 반환합니다.
모든 요소를 포함하는 그룹을 되돌려줍니다. 그 중 모든 요소의 블록 값은 진실입니다.
만약 원소가 진짜가 없다면, 빈 그룹을 되돌려줍니다.
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/filter.html
# 2で割り切れるものを返す(select)
[1, 2, 3, 4, 5, 6].select { |n| n % 2 == 0 }
=> [2, 4, 6]

# 2で割り切れるものを返す(find_all)
[1, 2, 3, 4, 5, 6].find_all { |n| n % 2 == 0 }
=> [2, 4, 6]

# 2で割り切れるものがないので空の配列を返す
[1, 3, 5, 7].select { |n| n % 2 == 0 }
=> []

select와 반대되는reject


블록을 포함하는 방정식이 가짜 요소로 변하는 모든 패턴을 반환합니다.
select의 반대입니다.
모든 원소의 블록을 계산하고 새 그룹을 되돌려줍니다. 이 값은 가짜 원소입니다.조건을 반전시키는 select.
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/reject.html
# 2で割り切れない要素を返す
[1, 2, 3, 4, 5, 6].reject { |n| n % 2 == 0 }
=> [1, 3, 5]

find / detect


블록의 공식이 진짜 첫 번째 요소로 되돌아옵니다.
첫 번째 원소를 되돌려줍니다. 이 원소의 블록 값은 진짜입니다.
진정한 요소를 찾을 수 없고, innone도 지정하지 않으면 nil로 돌아갑니다.
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/detect.html
# 最初の3の倍数を返す(find )
[1, 2, 3, 4, 5, 6].find { |n| n % 3 == 0 }
=> 3

# 最初の3の倍数を返す(detect)
[1, 2, 3, 4, 5, 6].detect { |n| n % 3 == 0 }
=> 3

# 2で割り切れるものがないので、nilを返す
[3, 3, 3, 3, 3].find { |n| n % 2 == 0 }
=> nil

map / collect


블록에서 배열 요소의 수를 반복해서 처리하여 새 배열을 되돌려줍니다.
모든 원소 평가 블록의 모든 결과를 포함하는 그룹을 되돌려줍니다.
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/collect.html
# 配列内の要素を2倍にした新しい配列を返す(map)
[1, 2, 3, 4, 5, 6].map { |n| n * 2 }
=> [2, 4, 6, 8, 10, 12]

# 配列内の要素を2倍にした新しい配列を返す(collect)
[1, 2, 3, 4, 5, 6].collect { |n| n * 2 }
=> [2, 4, 6, 8, 10, 12]

map과 each의 차이


each는 그룹의 원소를 하나하나 추출할 수 있습니다.
각 요소에 대해 블록 평가를 진행하다.
https://docs.ruby-lang.org/ja/latest/method/Array/i/each.html
map→처리 결과를 새 배열로 되돌려줍니다
each→수조의 원소 추출
맵이 새로운 배열을 되돌려주기 때문에 수신기의 값도 변경됩니다
each의 반환값은 원시 배열로 유지됩니다
# (map)配列内の要素を2倍にした新しい配列を返す
a = [1, 2, 3, 4, 5, 6].map { |n| p n * 2 }
=> [2, 4, 6, 8, 10, 12]

# 返り値はmapの処理の新しい配列
p a
=> [2, 4, 6, 8, 10, 12]

# (each)配列内の要素を2倍にした結果を返す
b = [1, 2, 3, 4, 5, 6].each { |n| n * 2 }
2
4
6
8
10
12

# 返り値は元の配列のまま
p b
=> [1, 2, 3, 4, 5, 6]

delete_if / reject!


블록을 포함하는 방정식이 가짜 요소로 변하는 모든 패턴을 반환합니다.
!
파괴적인 방법.
요소를 블록에 순차적으로 전달하여 평가하고 모든 결과를 실제 요소로 삭제합니다.
delete_만약 항상 self,reject에 답장합니다!한 개 이상의 요소가 삭제되면self를 되돌려주고, 한 요소가 삭제되지 않으면nil을 되돌려줍니다.
https://docs.ruby-lang.org/ja/latest/method/Array/i/delete_if.html
# 2で割り切れない(偽になる要素)結果を返す(delete_if)
a = [1, 2, 3, 4, 5, 6].delete_if { |n| n % 2 == 0 }
=> [1, 3, 5]

# 2で割り切れない(偽になる要素)結果を返す(reject!)
a = [1, 2, 3, 4, 5, 6].reject! { |n| n % 2 == 0 }
=> [1, 3, 5]

# 破壊的なメソッドなので、レシーバの値も変わる
p a
=> [1, 3, 5]

보충 Enumerable 모듈


find_all,detect,reject,map 등은Enumerable 모듈의 방법입니다.
수조, 산열에 추출 및 검색 기능을 제공하는 모듈
Array, Hash, Range 등의 클래스에 Enumerable 모듈이 포함됩니다.
https://docs.ruby-lang.org/ja/latest/class/Enumerable.html

좋은 웹페이지 즐겨찾기