외로운 Nova의 작업실
안드로이드 앱 프로그래밍 - 4(코틀린의 유용한 기법) 본문
- 람다 함수
//람다함수 선언
val sum = {no1: Int, no2: Int -> no1 + no2}
//람다함수 호출문
sum(10, 20)
//람다함수 선언과 호출
val sum = {no1: Int, no2: Int -> no1 + no2}(10, 20)
//매개변수 없는 람다함수
{println("function call")}
//매개변수가 1개인 람다함수에 unit, i 키워드 사용
val some: (Int) -> Unit = {println(it)}
//람다 함수의 반환
val som = {no1: Int, no2: Int) ->
println("function")
no1 * no2 //얘가 반환됨
}
//함수 타입 선언 및 람다함수 선언
fun some: (Int, Int) -> Int = {no1: Int, no2: Int-> no1 + no2}
//typealias
typearias MyFunType = (Int, Int) -> Boolean
val someFun : MyFunType = {no1: Int, no2: Int -> no1 > no2}
//매개변수 타입 생략
typearias MyFunType = (Int, Int) -> Boolean
val someFun : MyFunType = {no1, no2 -> no1 > no2}
- 고차 함수
고차 함수란 함수(식)을 매개변수로 전달받거나 반환하는 함수를 의미합니다. 아래는 예제입니다.
fun hotFun(arg: (Int) -> Boolean): () -> String{
var result = if(arg(10)){
"valid"
}else{
"invalid"
}
return {"hofFun result : $result"}
}
fun main(){
var result = hofFun({no -> no > 0})
println(result)
}
- 널 안전성
널이란 객체가 선언되었지만 초기화되지 않은 상태를 의미합니다.
//널 안전성이 없는 코드
var data:String? = null
data.length //오류
//널 안전성 호출 ?. 연산자
var data:String? = null
data?.length //오류가 나지않고 null이 반환됨
//엘비스 ?:연산자
var data:String? = null
data?.length ?: -1 //data가 null이면 -1이 반환됨
//예외발생 !! 연산자
var data: String? = null
data!!.length //오류발생
'Programming > Kotlin - Android' 카테고리의 다른 글
안드로이드 앱 프로그래밍 - 6(뷰를 배치하는 레이아웃) (0) | 2023.01.11 |
---|---|
안드로이드 앱 프로그래밍 - 5(뷰를 이용한 화면 구성) (0) | 2023.01.09 |
안드로이드 앱 프로그래밍 - 3(코틀린 프로그래밍 기본) (0) | 2023.01.06 |
안드로이드 앱 프로그래밍 - 2(안드로이드 앱 개발의 특징) (0) | 2023.01.04 |
안드로이드 앱 프로그래밍 - 1(책소개와 에뮬레이터) (0) | 2023.01.03 |
Comments