본문 바로가기

분류 전체보기556

Kotlin] 25. inline 함수 코틀린이나 자바나, 객체지향 언어라 함수를 만나면 함수 내의 행동을 실행하고, 다시 Main 함수 내로 돌아와서 다음 행동을 실행한다. 이런 행동은 프로그램 성능을 저해하는 요인 중 하나가 된다. inline 키워드를 사용하면 굳이 돌아올 필요가 없어진다. package inlineExample inline fun hello(){ println("Hello") println("World") } fun main() { hello() hello() hello() } 이 코드는 컴파일할때 다음과 같이 변환한다. fun main() { println("Hello") println("World") println("Hello") println("World") println("Hello") println("World.. 2020. 12. 10.
Kotlin] 24. 동반자 객체(Companion Object) 동반자 객체는 클래스 안에 이름이 없는 객체이다. 이 객체는 인스턴스가 몇 개이던 간에 모든 인스턴스가 공유한다. 코틀린은 static이 없기 때문에 동반자 객체가 static과 유사한 작동을 한다. 예시를 보자. package companionObject class Person private constructor(){ companion object{ fun create() : Person { countCreated += 1 return Person() } var countCreated = 0 private set } } fun main() { val a = Person.create() val b = Person.create() println(Person.countCreated) } Person은 싱글톤.. 2020. 12. 10.
Kotlin] 23. 객체 선언(Singleton) 싱클톤 디자인 패턴은 전체 프로그램에서 객체를 단 한번만 선언하여 인스턴스에 띄우고 그 인스턴스로 접근하는 방식이다. 자바의 경우 static으로 띄워 instance 를 공유하는 방식인데, 코틀린은 static이 없다. 그러므로 싱글톤을 만드는 키워드를 제공한다(!) class를 선언하듯 object를 선언하기만 하면 싱글톤이 된다. package objectDeclaration object Person { var name : String = "" var age : Int = 0 fun print(){ println(name) println(age) } } fun main(){ Person.name = "Singleton" Person.age = 32 Person.print() } 대신 이 키워드에는 .. 2020. 12. 10.
Kotlin] 22. 확장 코틀린은 String등에 접근할 수가 없다. 대신 이를 접근하기 위해 확장함수의 개념을 사용한다. package extension fun String.isNumber() : Boolean { var i =0 while (i Unit instantFunc = {number: Int -> println("Hello $number") } instantFunc(33) instantFunc?.inv.. itstudy-mary.tistory.com 이 리터럴을 확장하는 것도 .. 2020. 12. 10.
반응형