diff --git a/documents/AboutKotlin_1.md b/documents/AboutKotlin_1.md new file mode 100644 index 0000000000000000000000000000000000000000..1ae141f94bf4716b621560edad0b382f24fe446d --- /dev/null +++ b/documents/AboutKotlin_1.md @@ -0,0 +1,106 @@ +# 코틀린 정리하면서 공부하기 (1) + +## 변수, 상수, 타입 + +#### 1. 정의 + +- <b>변수(variable)</b>와 <b>상수(constant)</b> + + 애플리케이션에서 값을 저장하고 데이터를 전달할 수 있는 어떤 공간 + +- <b>데이터 타입</b> + + 상수나 변수에 저장된 데이터 유형 + + + +#### 2. 변수 + +* 변수 생성 + +##### [변수 정의 키워드] [변수이름] : [타입 정의] [대입 연산자] [대입값] + +*예시) var experiencePoints : Int = 5* + + + +* 변수 정의 키워드 종류 + + **런타임 생성 변수** + + 프로그램이 실행되는 동안 변수들이 생성되어 값이 지정된다. + + * **var - <u>값이 변경</u>되는 변수** + + variable 라고 한다. + + * **val - <u>값이 변경되지 않는</u> 변수** + + **(단, 상수(constant)는 아니다)** + + value (= read-only variable) 라고 한다. + + var이 필요하지 않을 때는 val을 사용하는 것이 바람직하다. + + + + **컴파일 상수** (컴파일시 생성되는 변수) + + 모든 함수의 외부에 정의되어 값이 지정된다. 따라서 프로그램 실행 전에 컴파일러가 알 수 있어야하기 때문에 [기본타입](#기본타입)중 하나여야 한다. + + * **constant val ** + + ```kotlin + const val MAX: Int = 100000 + + fun main (){ + ... + } + ``` + + + + + +* if 대입값의 타입이 타입 정의 에 정의한 타입과 다르면 + **인텔리제이**는! + + <u>정적 타입 검사(static type checking)</u> 를 하여 프로그램이 컴파일하기 전에 오류를 알려준다. + + + + 컴파일 후 **코틀린 컴파일러**는! + + 코틀린이 <u>정적 타입 시스템</u>이기 때문에 코틀린 컴파일러가 컴파일 시점에 코드의 적합 여부를 알려준다. + + + +#### 3. 타입 + +* 기본타입 + + | String | Float | Byte | + | ---------- | --------- | ----------- | + | **Int** | **Long** | **Char** | + | **Double** | **Short** | **Boolean** | + + 자바에서 기본타입은 소스코드 파일로 정의되지 않으며 키워드로 나타내진다. 반면에 참조 타입은 별 개의 소스 코드 파일로 정의된다. 자바와 다르게 코틀린에서는 기본타입도 참조타입으로 지원한다. + +* **타입 추론** + + 변수를 선언할 때는 타입을 생략해도 된다. 코틀린 컴파일러가 변수 타입을 알고 처리해준다. + +```kotlin +val username01: String = "Joylish" // 기본 변수 생성; 타입 String 선언 + +val username02 = "Happy" // 타입 생략 +``` + + + + + + + + +