Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종
5425 단어 Scala
소개
Scala 에서는 루프 처리는 많이 사용되지만, Map
의 key 와 value 를 루프 시키기 위해서는 조금 고안이 필요하기 때문에 정리해 둡니다.
또, Scala 의 Map
는 Seq[Tuple2]
와 같이 취급할 수 있으므로, Seq[TupleN]
에도 같은 방법을 사용할 수 있습니다.
하고 싶은 일
val source = Map("a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4)
이와 같은 Map
에 "a" * 1
... 를 해 가서 다음과 같은 List
List("a", "bb", "ccc", "dddd")
(좀 더 실용적인 예가 있으면 좋았는데 생각하지 못했기 때문에 용서해 )
case 로 패턴 매치
source.map({case (key, value) => key * value})
잘 보는 것 같아요.
for 에서 패턴 매치
for ((key, value) <- source) yield key * value
모양이 다른 것만으로 case
와 거의 같습니다.
Function.Tupled
source.map(Function.tupled((key, value) => key * value))
별로 보지 않지만 개인적으로 가장 좋아합니다.Function.Tupled
는 FunctionN[引数1, 引数2, ... 戻り値]
를 Function1[TupleN[引数1, 引数2, ... ], 戻り値]
로 변환하는 함수입니다. (알기 어렵다…)
source.map(Function.tupled(_ * _))
언더스코어 기법도 사용할 수 있는 것이 편리합니다.
보통 map 한다
source.map(tuple => tuple._1 * tuple._2)
제일 솔직? 한 방법입니다.tuple
라는 인수를 정의하지 않으면 안되는 것이 미묘합니다.
결론
어떻습니까?
4종을 들어 보았지만, 어느 것을 사용하는지는 기호라고 생각합니다.
덤
Seq[TupleN]
의 루프는 사용합니까? 라는 의견도 있을 것 같으므로, 자신이 자주 사용하는 관용구를 붙여 둡니다.
길이가 같은 Seq
를 정리해 루프 시키고 싶은 경우입니다.
인덱스를 사용해 루프 시키는 것보다 예쁘게 쓸 수 있습니다.
val valuesA = Seq(1, 2, 3, 4)
val valuesB = Seq(5, 6, 7, 8)
for ((a, b) <- valuesA zip valuesB) someFunction(a, b)
Reference
이 문제에 관하여(Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soycoffee/items/789714671f3c06eee5d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
val source = Map("a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4)
이와 같은
Map
에 "a" * 1
... 를 해 가서 다음과 같은 List
List("a", "bb", "ccc", "dddd")
(좀 더 실용적인 예가 있으면 좋았는데 생각하지 못했기 때문에 용서해 )
case 로 패턴 매치
source.map({case (key, value) => key * value})
잘 보는 것 같아요.
for 에서 패턴 매치
for ((key, value) <- source) yield key * value
모양이 다른 것만으로 case
와 거의 같습니다.
Function.Tupled
source.map(Function.tupled((key, value) => key * value))
별로 보지 않지만 개인적으로 가장 좋아합니다.Function.Tupled
는 FunctionN[引数1, 引数2, ... 戻り値]
를 Function1[TupleN[引数1, 引数2, ... ], 戻り値]
로 변환하는 함수입니다. (알기 어렵다…)
source.map(Function.tupled(_ * _))
언더스코어 기법도 사용할 수 있는 것이 편리합니다.
보통 map 한다
source.map(tuple => tuple._1 * tuple._2)
제일 솔직? 한 방법입니다.tuple
라는 인수를 정의하지 않으면 안되는 것이 미묘합니다.
결론
어떻습니까?
4종을 들어 보았지만, 어느 것을 사용하는지는 기호라고 생각합니다.
덤
Seq[TupleN]
의 루프는 사용합니까? 라는 의견도 있을 것 같으므로, 자신이 자주 사용하는 관용구를 붙여 둡니다.
길이가 같은 Seq
를 정리해 루프 시키고 싶은 경우입니다.
인덱스를 사용해 루프 시키는 것보다 예쁘게 쓸 수 있습니다.
val valuesA = Seq(1, 2, 3, 4)
val valuesB = Seq(5, 6, 7, 8)
for ((a, b) <- valuesA zip valuesB) someFunction(a, b)
Reference
이 문제에 관하여(Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soycoffee/items/789714671f3c06eee5d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
source.map({case (key, value) => key * value})
for ((key, value) <- source) yield key * value
모양이 다른 것만으로
case
와 거의 같습니다.Function.Tupled
source.map(Function.tupled((key, value) => key * value))
별로 보지 않지만 개인적으로 가장 좋아합니다.Function.Tupled
는 FunctionN[引数1, 引数2, ... 戻り値]
를 Function1[TupleN[引数1, 引数2, ... ], 戻り値]
로 변환하는 함수입니다. (알기 어렵다…)
source.map(Function.tupled(_ * _))
언더스코어 기법도 사용할 수 있는 것이 편리합니다.
보통 map 한다
source.map(tuple => tuple._1 * tuple._2)
제일 솔직? 한 방법입니다.tuple
라는 인수를 정의하지 않으면 안되는 것이 미묘합니다.
결론
어떻습니까?
4종을 들어 보았지만, 어느 것을 사용하는지는 기호라고 생각합니다.
덤
Seq[TupleN]
의 루프는 사용합니까? 라는 의견도 있을 것 같으므로, 자신이 자주 사용하는 관용구를 붙여 둡니다.
길이가 같은 Seq
를 정리해 루프 시키고 싶은 경우입니다.
인덱스를 사용해 루프 시키는 것보다 예쁘게 쓸 수 있습니다.
val valuesA = Seq(1, 2, 3, 4)
val valuesB = Seq(5, 6, 7, 8)
for ((a, b) <- valuesA zip valuesB) someFunction(a, b)
Reference
이 문제에 관하여(Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soycoffee/items/789714671f3c06eee5d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
source.map(Function.tupled((key, value) => key * value))
source.map(Function.tupled(_ * _))
source.map(tuple => tuple._1 * tuple._2)
제일 솔직? 한 방법입니다.
tuple
라는 인수를 정의하지 않으면 안되는 것이 미묘합니다.결론
어떻습니까?
4종을 들어 보았지만, 어느 것을 사용하는지는 기호라고 생각합니다.
덤
Seq[TupleN]
의 루프는 사용합니까? 라는 의견도 있을 것 같으므로, 자신이 자주 사용하는 관용구를 붙여 둡니다.
길이가 같은 Seq
를 정리해 루프 시키고 싶은 경우입니다.
인덱스를 사용해 루프 시키는 것보다 예쁘게 쓸 수 있습니다.
val valuesA = Seq(1, 2, 3, 4)
val valuesB = Seq(5, 6, 7, 8)
for ((a, b) <- valuesA zip valuesB) someFunction(a, b)
Reference
이 문제에 관하여(Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soycoffee/items/789714671f3c06eee5d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Seq[TupleN]
의 루프는 사용합니까? 라는 의견도 있을 것 같으므로, 자신이 자주 사용하는 관용구를 붙여 둡니다.길이가 같은
Seq
를 정리해 루프 시키고 싶은 경우입니다.인덱스를 사용해 루프 시키는 것보다 예쁘게 쓸 수 있습니다.
val valuesA = Seq(1, 2, 3, 4)
val valuesB = Seq(5, 6, 7, 8)
for ((a, b) <- valuesA zip valuesB) someFunction(a, b)
Reference
이 문제에 관하여(Scala 의 Map ( or Seq[TupleN] ) 을 루프시키는 방법 4종), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soycoffee/items/789714671f3c06eee5d7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)