Kotlin 기초 4

Tadap·2023년 10월 11일

Kotlin

목록 보기
4/6

코틀린 개요

코틀린 멀티 플랫폼

코틀린 언어로 여러 플랫폼에서 사용 및 실행 가능하다.
크게 Common, Client로 나뉘는데
Common은 언어수준의 공유같고
중요한건 Client로 Android,IOS, Web 등 클라이언트가 하나의 언어로 실행 가능하다.

백엔드는 크게 무관할듯

서버

장점을 설명하는것같다. Java의 기술스택과 호환되고 러닝커브는 당연히 완만해진다.

나머지들도 코틀린 장점 어필중 패스

기타

나머지 안한것들 위주로 적으려고 한다.

  1. StringTemplates
val t = "이렇게"
val s = "도중에 적으려면 ${t}"

중관호에는 함수가 들어갈 수도 있다.

  1. map 순회
for ((k, v) in map) {
    println("$k -> $v")
}
  1. Lazy property
val p: String by lazy { // the value is computed only on first access
    // compute the string
}

위 값은 처음 접근할 때 계산된다.

  1. 기능확장
fun String.spaceToCamelCase() { ... }

"Convert this to camelcase".spaceToCamelCase()

원래 String에는 spaceToCamelCse라는 기능이 없지만 확장을 통해 만들었다.

  1. Singleton 구현
object name{
}

오브젝트 내부에 값을 줘서 싱글톤으로 생성 가능하다.

  1. 추상 클래스
    자바와 동일하다.
    내부에 abstarct fun을 정의한다.

  2. If-not-null
    .을 이용해서 매서드를 실행시킨다.
    이때 null가능성이 있으면 오류를 뿌리는데
    ?.을 이용하면 null처리가 된다.
    위를 이용하면 ?. 뒤에 실행을 시킬 수 있다.

    val value = ...
    
    value?.let {
        ... // execute this block if not null
    }

    위를 보면 let을 사용해서 value에 따라 값을 실행시킬 수 있다.

  3. If-not-null-else
    위 7의 업글버전이다.
    말그대로 null이 아니면 실행, null이면 다른걸 실행한다
    먼저 ?.을 동일하게 해주고 그 뒤에 :.을 붙여서 만약 null이면 할 행동을 붙인다.

  4. Execute a statement if null
    위 8의 응용으로 어떤 값이 null 이면 실행 시킬 수 있다.

val values = ...
val email = values["email"] ?: throw IllegalStateException("Email is missing!")

values에 email이 없으니 에러를 던진다.

  1. try - catch
val result = try {
        count()
    } catch (e: ArithmeticException) {
        throw IllegalStateException(e)
    }

try - catch문도 지원한다. 값을 try후 받을 수도 있다.
if 문도 위처럼 값으로 받을 수 있다.

  1. 객체 초기화
fun arrayOfMinusOnes(size: Int): IntArray {
    return IntArray(size).apply { fill(-1) }
}

.apply 매서드를 사용하면 초기화가 가능하다

  1. 값 변경
    원래대로면 temp에다가 값을 저장해서 변경해야 하지만
    .also 매서드를 이용하면 된다
var a = 1
var b = 2
a = b.also { b = a }

also는 객체를 조작하고 나서 원래 객체를 반환한다.
b=a 해서 b에다가 a를 넣고, 원래 b를 반환한다.

0개의 댓글