코틀린
-
[코틀린] also, apply, let, run코틀린 2022. 3. 20. 21:16
코틀린의 Any 객체에는 다양한 메소드가 정의되어있다. 그 중 also, apply, let, run에 대해서 살펴본다. 1. also also는 block을 받아 실행시키고 block의 argument는 실행 컨텍스트가 된다. also 내부의 this 값은 람다가 정의된 곳의 this 다. block 실행 결과는 원래 context가 반환된다. fun toString() = "lexical" val doAlso = "context".also { arg -> print("this: ${this.toString()}, arg: $arg, ") } println("result $doAlso") // 출력 this: lexical, arg: context, result context 2. apply apply..
-
[코틀린] 객체와 클래스코틀린 2022. 3. 13. 00:49
1. 객체와 싱글톤 객체 표현식으로 사용하는 익명 객체 객체 표현식: object {} 형태로 구현하고 익명의 객체를 생성한다. fun drawCircle() { val circle = object { val x = 10 val y = 20 val radius = 5 } println("Circle x: ${circle.x} y: ${circle.y} radius: ${circle.radius}")) } drawCircle() // Circle x: 10 y: 20 radius: 5 익명 객체는 인터페이스를 구현할 수도 있다. object: 으로 인터페이스를 구현하는 익명 객체를 만들 수 있다. fun createRunnable(): Runnable { val runnable = object: Runna..
-
[코틀린] 외부 반복과 아규먼트 매칭코틀린 2022. 3. 7. 11:01
1. 범위와 반복 range 코틀린에서는 특정 범위 내 반복을 위한 클래스가 있다. val shortRange: IntRange = 1 .. 5 1부터 5까지의 반복을 위한 클래스는 위와 같다. val aToZ: CharRange = 'a' .. 'z' 위는 a 부터 z까지의 반복을 하기 위한 변수 정의이다. val stringRange: ClosedRange = "aaa" .. "aad" println(stringRange.contains("aac")) println(stringRange.contains("aae")) 정방향 반복 val shortRange: IntRange = 1 .. 5 println(shortRange) for(i in shortRange) print("$i ") // 1 2 3 ..