정적 타입 언어
: 컴파일 시점에 변수의 타입이 특정 자료형으로 결정되는 언어
(<-> 동적 타입 언어 : PHP나 JavaScript처럼, 프로그램 실행중에 할당되는 변수에 따라 자료형이 바뀌는 언어)
** but, Kotlin의 경우에는 선언 시점에 자료형을 명시하지 않아도, 최초에 할당되는 값에 따라 자동으로 타입추론 가능!
Java 와 100% 호환 가능
: Kotlin/JVM의 경우 컴파일러를 통해 JAVA와 동일한 JVM용 Byte Code를 생성
Null가능 변수/불가능변수가 나뉨 (Null Pointer Exception 방지)
: ? 표시를 통해 Nullable을 표현
var name: String? = null //null 가능 변수 선언
println(name?.length) //null이 아닐 경우에만 접근
불변성을 위한 자료형을 제공
1) 변수 선언 시 val / var 구분
2) 배열 mutableListOf / listOf 구분
Q1) Kotlin으로 모바일 말고 데스크톱 애플리케이션도 만들 수 있나봐?
Q2) JVM의 동작에 대해 더 알아보고 싶어.
Q3) 강의 중에, Java 코드에서 kt파일명.함수(~) 로 Kotlin 함수를 호출하는 부분이 있었잖아?
여기서 객체를 안만들고 바로 호출하고 있는데, 그럼 코틀린 소스에 선언된 함수는 다 static 함수가 된다는 뜻인가?
Q4) 강의 중에, 상수로 쓸 값은 val 로 선언했다가 바꿀 일이 생기면 var로 다시 선언하면 된다고 했는데,
그럼 val var 변수명이 같아도 될까?
①같은 변수를 val에서 var 형태로 바꿀 수 있다는 건지
②아니면 다른 변수명으로 새로 var 로 선언해서 써야 한다는 뜻인지 이해하기가 애매모호하다..!
> [오늘의 궁금]은 앞으로 배우면서 Answer을 채워갈 예정입니다.
(누군가 도움을 주신다면 감사할거에요 :D )