자바 개발자에서는 scala에서 사용하는 map을 주로 쓰는 스타일(어쩌면 예시문으로 배운 패턴)이 있다.
List(1,2,3).map { i =>
...
}
그런데. map 안에 함수가 들어가는 형태가 좀 어색할 때가 있다.
즉, map 안에 함수적 코드가 들어가는 것은 어색하지 않은데..
println(List(1,2,3).map( i => i + 1))
map 뒤에 plus1이라는 함수를 추가하니까 엄청 어색하다.
def plus1(s: Int) = s + 1
val a = List(1,2,3).map(plus1)
println(a)
두 결과는 다음처럼 동일하다.
List(2, 3, 4)
List(2, 3, 4)
다음은 string을 인자로 받는 예제이다.
def convert(str: String) = s"${str}/tt"
val b1 = List("1","2","3").map(convert)
println(b1)
val b2 = List("1","2","3").map(convert).mkString(",")
println(b2)
결과는 다음과 같다.
List(1/tt, 2/tt, 3/tt)
1/tt,2/tt,3/tt
어떤 List결과를 변형(map)하고, List는 ,로 바꾸는 경우이다.
파일 디렉토리를 사용할 때 아주 유용할만하다..
'scala' 카테고리의 다른 글
[zeppelin] spark의 변수 공유하기 (0) | 2016.11.18 |
---|---|
spark의 mapValues/reduceByKey 예시 (0) | 2016.11.14 |
[zeppelin] zeppelin으로 spark 연동 시 팁 (또는 주의 사항) (0) | 2016.11.07 |
[scala] sys.env 환경변수 확인 예시 (0) | 2016.11.07 |
[zeppelin] 외부 lib 추가하기 (0) | 2016.11.05 |