Language/Kotlin

    lateinit var와  lazy의 차이

    lateinit var와 lazy의 차이

    lateinit var var 변수에서만 사용합니다.null 값으로 초기화 할 수 없습니다.초기화 전에는 변수를 사용할 수 없습니다. Int, Long, Double, Float (primitive type) 에는 사용할 수 없습니다. 변수에 대한 setter/getter properties 정의가 불가능합니다. lazy val변수에만 사용합니다. 호출 시점에 by lazy 정의에 의해서 초기화를 진행합니다. 초기화를 위해서는 함수명이라도 한번 적어줘야 합니다. lazy을 사용하는 경우 기본 Synchronized로 동작합니다.

    [Kotlin] varag

    [Kotlin] varag

    매개변수로 여러개의 값을 받을 수 있습니다. fun main(args: Array){ print("hello kotlin!\n") val n1 = varArg(1) var n2 = varArg(1, 2, 3, 4, 5) var intArr = arrayOf(1, 2, 3, 4, 5) print(n1) print("\n") print(n2) } fun varArg(vararg num: Int) = num.sum() 단, 배열을 매개변수로 입력하려면 매개변수 앞에 *를 입력해야 합니다.

    Kotlin 이란?

    Kotlin 이란?

    코틀린이란? Kotlin은 2011년 7월 JetBrains이 발표한 프로그래밍 언어로, JVM에서 동작합니다. 주로 Android application 개발에 이용되며, 최근 빌드 내용을 보면 kotlin multiplatform으로 ios application도 개발할 수 있어 보입니다. 철학 실용성 다른 프로그래밍 언어에서 성공적으로 검증된 해법과 기능에 의존합니다. 특정 프로그래밍 패러다임이나 스타일을 강제하지 않습니다. 생상성 향상을 위해 '좋은 도구'를 강조합니다. 간결성 Getter, Setter와같이 번거로운 코드들은 묵시적으로 제공합니다. 길거나 반복되는 코드를 라이브러리 함수로 대체할 수 있습니다. 최소화와 간결성은 다르므로, 연산자 오버로딩은 지원하되 신규연산자는 정의하진 못합니다. ..

    Kotlin의 옵셔널 처리

    Kotlin의 옵셔널 처리

    코틀린은 스위프트와 같이 null safe를 위해 ? 또는 !!를 지원한다. ? var inputedStr: String? = leadline()?.toUpperCase() 해석 : 입력값이 null이 아니라면 대문자로 바꿔 inputedStr에 저장하고, 입력값이 null이라면 inputedStr는 null 이다. ?: var inputedStr: String? = leadline()?.toUpperCase() ?: "none" 해석 : 입력값이 null이라면 우항은 "none"을 반환 * ?: 는 return,throw도 넣을 수 있다 ! val title: String = str!! 해석 : 강제로 null이 아님을 선언합니다. 그리고 NPE이 발생하더라도 해당 라인을 명확히 지목해 줍니다. let..