[KOTLIN] 함수 정의와 호출
Uploaded by N2T
- 코틀린/코틀린인액션
- · 2024. 2. 8.
[KOTLIN] 봉인된 클래스(sealed class) : 클래스 계층의 확장 제한기본sealed 클래스클래스 계층을 정의할 때 계층 확장을 제한하는 방법 제공함.하위 클래스는 모든 가능한 하위 타입을 제한적으로 나열할 수 있게 함.when 식에서 else 분기 없이도 완전성을 보장한다.예제 : 식(Expression) 계층interface Expr class Num(val value: Int) : Expr class Sum(val left: Expr, val right: Expr) : Expr fun eval(e: Expr): Int = when (e) { is Num -> e.value is Sum -> eval(e.right) + eval(e.left) else -> throw IllegalArgu..
코틀린 인터페이스 기본자바 8 의 인터페이스와 유사함인터페이스 내에 추상 메서드 + 구현이 있는 메서드( 자바 디폴트 메서드 ) 도 포함이 가능하다.하지만, 인터페이스에는 상태를 나타내는 필드를 포함할 수 없음.인터페이스 정의 및 구현interface Clickable { fun click() }click 이라는 추상 메서드를 가진 Clickable 인터페이스를 정의함.해당 인터페이스를 구현하는 모든 클래스는 click 메서드에 대한 구현을 제공해야함class Button : Clickable { override fun click() { println("I was clicked") } }Button 클래스는 Clickable 인터페이스를 구현하고 click 메서드를 오버라이드코틀린에서는 override ..
중복 제거의 중요성DRY(Don't Repeat Yourself) 원칙을 따르는 것이 중요코틀린의 로컬 함수함수 내부에 로컬 함수를 중첩시켜 코드를 깔끔하게 조직로컬 함수를 사용해 코드 중복 줄이는 법class User(val id: Int, val name: String, val address: String) fun saveUser(user: User) { fun validate(value: String, fieldName: String) { if (value.isEmpty()) { throw IllegalArgumentException("Can't save user ${user.id}: empty $fieldName") } } validate(user.name, "Name") validate(user..
값의 쌍 , 중위 호출과 구조 분해 선언맵 생성하기맵 생성시 mapOf 함수를 사용함.val map = mapOf(1 to "one", 7 to "seven", 53 to "fifty-three")중위 호출(Infix Call)to 는 코틀린의 키워드가 아니라,중위 호출을 통해 호출되는 일반 메서드임중위 호출은 수신 객체 ( 1 )와 유일한 메서드 인자(”one”) 사이에 메서드 이름을 넣어 호출하는 방식임.1.to("one") // "to" 메서드를 일반적인 방식으로 호출함 1 to "one" // "to" 메서드를 중위 호출 방식으로 호출함중위 호출을 사용하려면 메서드 앞에 infix 변경자를 추가해야 한다.to 함수 는 아래와 같은 식임infix fun Any.to(other: Any) = Pair..
Uploaded by N2T