Programming/Android2015.12.23 23:27

callback lambda 를 function의 parameter로 넘겨서 사용하려고 합니다.

lambda의 정의는 간단하죠.


함수 정의

fun saveFile(value: Int, callback: (value: Int) -> Void) {

}


함수 사용

functionName(10, { value -> 

})


이렇게 하면 당연히 될줄 알았습니다. 대부분의 언어에서 return 값이 없으면 void 또는 빈값을 해서요...


https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions

return 값이 없을 때는 Unit type 으로 return type 을 지정해야 한다고 되어 있습니다.


함수 정의

fun saveFile(value: Int, callback: (value: Int) -> Unit) {

}


이제 문제 없이 잘 build 됩니다.

Kotlin 에서는 void return 이 아니라 Unit return 해야 합니다.


신고
Posted by 초프(초보 프로그래머)
Programming/Android2015.12.23 11:27

최근에 안드로이드 프로젝트를 새로 시작했습니다.

혼자하고 작은 프로젝트라서 Kotlin으로 하고 있습니다. (유지보수는 누가하지...)

Swift와 비슷해서 시작했는데 다른 부분이 더 많네요.

여러 부분에서 막히고 문서 보고를 반복하다가 방금 찾아 본 것을 남겨봅니다.


Android 에서 새로운 Activity를 실행하려고 할때 Activity 의 class type을 넣어줘야 하는데요.

Java

Intent intent = new Intent(this, MainActivity.Class);


Kotlin

val intent = Intent(this, javaClass())


위 방법은 현재 deprecated 입니다. 

현재 버전에서는 다음과 같이 사용해야 합니다.


Kotlin

val intent = Intent(this, MainActivity:class.java)


https://kotlinlang.org/docs/reference/java-interop.html#getclass

신고
Posted by 초프(초보 프로그래머)