?. : 안전 호출 연산자
!! : 어설션 연산자
잠재적 null이므로 .length 반환 불가
Null 검사는 변수에 액세스하여 null을 허용하지 않는 유형으로 처리하기전에 변수가 null인지 확인하는 프로세스입니다.
fun main() {
val favoriteActor: String? = "Sandra Oh"
val lengthOfName = if(favoriteActor != null) {
favoriteActor.length
} else {
0
}
println("The number of characters in your favorite actor's name is $lengthOfName.")
}
?: : Elvis 연산자
fun main() {
val favoriteActor: String? = "Sandra Oh"
val lengthOfName = favoriteActor?.length ?: 0
println("The number of characters in your favorite actor's name is $lengthOfName.")
}
클래스 (class)
객체 (object)
인스턴스 (instance)
IS-A
HAS-A
람다 표현식
val greeting : (String) -> Unit { }
// 입력 자료형 -> 출력 자료형
고차함수
fun sum (a: Int, b: Int): Int = a+b
fun calculate(a: Int, b: Int): Int = sum(a, b)
when
,
in
is
접근제어자
public
private
protected - 상속 관계에서만 접근이 가능하다.
internal - 동일한 모듈 안에서만 접근이 가능하다.
인터페이스(추상화)
함수 참조 연산자 ::
fun main() {
val trickFunction = ::trick
}
fun trick() {
println("No treats!")
}
함수 참조 연산자, 람다 --> 변수를 함수처럼 사용가능 (리턴값으로도 사용가능)
fun main() {
val trickFunction = trick
trick()
trickFunction()
}
val trick = {
println("No treats!")
}
함수를 다른 함수에 인수로 전달
null을 허용하는 함수 유형
매개변수 it으로 사용 (매개변수가 한개있고, 이름을 지정하지 않는 경우)
람다 표현식을 함수에 직접 전달
후행 람다 문법 사용
repeat() 함수 사용