Scalaμ collect
λ©μλλ 컬λ μ
μμ ν¨ν΄ 맀μΉμ μ¬μ©νμ¬ μ‘°κ±΄μ λ§λ μμλ₯Ό μ ννκ³ λ³νν λ μ¬μ©νλ κ³ μ°¨ ν¨μμ
λλ€. μ΄λ filter
μ map
μ κ²°ν©ν ννλ‘, νΉμ 쑰건μ λ§λ μμλ₯Ό λ³ννμ¬ μλ‘μ΄ μ»¬λ μ
μ μμ±ν©λλ€.
collect
μ μ£Όμ νΉμ§PartialFunction
μ 맀κ°λ³μλ‘ λ°μ΅λλ€.case
ꡬ문μ μ¬μ©ν΄ 쑰건μ μ μν μ μμ΅λλ€.collection.collect { case pattern if condition => result }
1. 쑰건μ λ§λ μμ νν°λ§ λ° λ³ν
val numbers = List(1, 2, 3, 4, 5)
// 2λ‘ λλ λ¨μ΄μ§λ μ«μλ§ μ ννκ³ , κ·Έ μ«μλ₯Ό 10λ°°λ‘ λ³ν
val result = numbers.collect { case x if x % 2 == 0 => x * 10 }
println(result) // List(20, 40)
if x % 2 == 0
쑰건μΌλ‘ νν°λ§.x * 10
μΌλ‘ λ³ν.2. ν¨ν΄ 맀μΉμΌλ‘ νΉμ μμ λ³ν
val data = List("Scala", 123, true, "Java")
// λ¬Έμμ΄μΈ μμλ§ μ ννκ³ κΈΈμ΄λ₯Ό κ³μ°
val result = data.collect { case s: String => s.length }
println(result) // List(5, 4)
case s: String
쑰건μΌλ‘ λ¬Έμμ΄λ§ νν°λ§.3. Mapμμ μ‘°κ±΄λΆ μΆμΆ