람다식은 우리가 마치 value 처럼 다룰 수 있는 익명함수이다.
1) 메소드의 파라미터로 넘겨줄수가 있다. fun maxBy(a :Int)
2) return 값으로 사용할 수가 있다.
람다의 기본정의
val lamdaName : Type = {argumentList -> codeBody}
val square = {number : Int -> number*number}
확장함수
val P : String.() -> String = {this + "Pizza"}
람다의 Return
val ca :(Int) -> String = {
when(it)
{
in 1..100 -> "OK"
else -> "no"
}
}
람다를 표현하는 2가지 방법
fun main() {
val lamda : (Double) -> Boolean = {number : Double ->
number == 5.23}
println(invokelamda(lamda))
}
fun invokelamda(lamda : (Double) -> Boolean) : Boolean {
return lamda(5.23)
}
println(invokelamda({true}))
println(invokelamda({it > 3.23}))
마지막 파라미터가 람다식일때
== invokelamda {it > 3.23}
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(p0: View?) {
}
})
button.setOnClickListener{
}
data class ticket(val name : String, val seatNum : Int)
// toString(), hashCode(), equals(), copy()
자바의 static 역할
싱글턴 패턴
한 객체만 생성