-
Notifications
You must be signed in to change notification settings - Fork 8
16. 주요확장함수
VintageAppMaker edited this page Dec 21, 2018
·
2 revisions
- 함수형 프로그래밍을 지원하는 중요확장함수(scoping)들
- .let() 다음, 결과를 {}안에 넘긴다 ->를 사용할 경우 변수명 지정이 가능하다.
- .apply()다음, 객체를(생성과 동시) 결과를 {}안에 넘긴다. 파스칼의 with문과 유사. {}안에서 코딩한 객체의 결과를 넘긴다.
- .run()는 {}안의 실행 결과값을 최종값으로 넘긴다.
-
소스코드
fun main (args : Array <String>){ // let f1().let { value -> println (value) } f1().let { println ( it ) } 1232.let { it + 1 }.let { it * 3}.let { println (it) } var add = { a : Int, b: Int -> a + b} add(1, 2).let { println (it) } var bug : () -> Any? = { null } bug()?.let { println (it) } // apply() var obj = Test().apply { sName = "박모씨"; nAge = 49; } obj.aboutMe() // run() obj.run { sName = "김모씨"; aging(); sName}.let { println (it) } obj.aboutMe() // 실행결과를 리턴 run{ 333 + 4 }.let { println (it) } // also 100.let { println(it) ; it} .also { println ( it + 1000) } .also { println (it + 20 ) } .let { println (it)} } fun f1() = 10 class Test{ var sName : String = "무명씨" var nAge : Int = 49 fun aboutMe() = println("이름은 \"$sName\"이고 나이는 $nAge 입니다. ") fun aging() = nAge++ }
-
디버깅 & 설명
-
왜 사용하는가?
-
Android Studio에 적용하기