자바 개발자에서는 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는 ,로 바꾸는 경우이다.


파일 디렉토리를 사용할 때 아주 유용할만하다..


Posted by '김용환'
,