[Kotlin][학습노트] Kotlin의 특징

tora·2021년 6월 4일
0

Kotlin의 특징

  1. 정적 타입 언어
    : 컴파일 시점에 변수의 타입이 특정 자료형으로 결정되는 언어
    (<-> 동적 타입 언어 : PHP나 JavaScript처럼, 프로그램 실행중에 할당되는 변수에 따라 자료형이 바뀌는 언어)

    ** but, Kotlin의 경우에는 선언 시점에 자료형을 명시하지 않아도, 최초에 할당되는 값에 따라 자동으로 타입추론 가능!

  2. Java 와 100% 호환 가능
    : Kotlin/JVM의 경우 컴파일러를 통해 JAVA와 동일한 JVM용 Byte Code를 생성

  3. Null가능 변수/불가능변수가 나뉨 (Null Pointer Exception 방지)
    : ? 표시를 통해 Nullable을 표현

    var name: String? = null	//null 가능 변수 선언
    println(name?.length)		//null이 아닐 경우에만 접근
  4. 불변성을 위한 자료형을 제공
    1) 변수 선언 시 val / var 구분

    • val : final 처럼, 한번 할당하면 변하지 않는 상수 선언
    • var : 할당 후에도 변경이 가능한 변수 선언

    2) 배열 mutableListOf / listOf 구분

    • mutableListOf : 최초에 구성한 member 구성을 추가/삭제 가능 (add/remove)
    • listOf : 최초에 구성한 member 구조에서 추가/삭제 불가능
      --> 즉, val 형태로 listof 배열을 만들면 배열 구조도, 각 member 값도 불변!

[오늘의 궁금]

Q1) Kotlin으로 모바일 말고 데스크톱 애플리케이션도 만들 수 있나봐?

Q2) JVM의 동작에 대해 더 알아보고 싶어.

Q3) 강의 중에, Java 코드에서 kt파일명.함수(~) 로 Kotlin 함수를 호출하는 부분이 있었잖아?
여기서 객체를 안만들고 바로 호출하고 있는데, 그럼 코틀린 소스에 선언된 함수는 다 static 함수가 된다는 뜻인가?
강의자료 캡쳐

Q4) 강의 중에, 상수로 쓸 값은 val 로 선언했다가 바꿀 일이 생기면 var로 다시 선언하면 된다고 했는데,
그럼 val var 변수명이 같아도 될까?
①같은 변수를 val에서 var 형태로 바꿀 수 있다는 건지
②아니면 다른 변수명으로 새로 var 로 선언해서 써야 한다는 뜻인지 이해하기가 애매모호하다..!

> [오늘의 궁금]은 앞으로 배우면서 Answer을 채워갈 예정입니다.
(누군가 도움을 주신다면 감사할거에요 :D )


  • BoostCourse 강좌 [Hello, 코틀린!] 코스를 수강하며 작성한 학습노트입니다.

0개의 댓글