1. 변수
(1) var과 val
Kotlin에서 변수의 선언에는 기본적으로 두가지 키워드 'var'과 'val'이 있습니다.
가변(mutable type)
var은 일반적으로 통용되는 변수 선언 키워드이고,
ex)
var a: Int = 1 // 세미콜론을 붙여주지 않아도 됩니다.
var b: Int = 2
println(a)
불변(immutable type)
val은 선언시에만 초기화 가능하며, 중간에 값을 변경할 수 없게 하는 키워드로
Java의 final과 같은 기능을 합니다.
ex)
val a: Int = 1
a = 2 // 오류가 발생하는 코드
위의 예시 코드와 같이 var이나 val키워드 뒤에 변수이름이 오고
그다음 콜론이 오고나서 자료형을 써준 후 대입연산자가 오는 순서로 선언되는게 코틀린의 특징이며
기본 출력 함수는 println을 씁니다.
또한, 자바처럼 변수는 위치에 따라
클래스 내에서 선언되는 변수들은 속성(Property)
이 외의 Scope 내에 선언되는 변수들은 로컬 변수(Local Variable)이라고 불립니다
또, 코틀린에서는 변수의 초기화를 해주지 않고 사용할 시에는 에러 문구가 발생합니다.
가령
var a: Int
println(a)
라고 쓰면
"Variable 'a' must be initialized"라고 에러 메세지를 띄우며 컴파일이 되지 않습니다.
C같은 고전적인 언어들이 변수를 초기화 해주지 않을 시 쓰레기값이나 null로 초기화되어
출력은 됐었다는 점과 비교되는 부분인데,
코틀린은 기본 변수에서 null을 허용하지 않으며, 변수에 값을 할당하지 않은채로 사용하게 되면
문법 에러를 표시하고, 컴파일을 막아주므로
의도치 않은 실수나, null pointer exception등을 원천적으로 차단해준다는 장점이 있습니다.
(2) nullable 변수
var a:Int? = null처럼
자료형 뒤에 ?키워드를 붙이면 null을 쓸 수 있는 nullable 변수로 선언 해줄 수 있습니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
추가로, 코틀린에서는
뒤에서 나올 Class는 대문자로 시작하는 파스칼 표기법,
함수나 변수는 소문자로 시작하는 카멜 표기법 사용을 권장하고 있습니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2. 자료형
(1) 숫자 자료형
정수형 - Byte(1byte), Short(2byte), Int(4byte), Long(8byte)
실수형 - Float(4byte), Double(8byte)
var a: Long = 1234L
과 같이 뒤에 L을 붙여 더 큰 메모리 공간을 사용하는 정수임을 표시하여야 합니다.
(2) 문자 자료형
Char(2byte) - 코틀린은 유니코드 인코딩 방식 중 UTF-16BE이기 때문에 2byte입니다.
ex)
var charVal:Char = 'a'
처럼 작은따옴표로 감싸서 표기합니다.
(3)문자열 표기
ex)
var stringVal = "one line string" 처럼 한줄 문자열일 경우 큰따옴표로 감싸주고,
여러줄 문자열의 경우 """(따옴표 3개)를 사용합니다.
(4)10진수, 16진수, 2진수 표기법
코틀린에서는 8진수 표기법은 지원하지 않습니다
var a:Int = 10
var a:Int = 0x10
var a:Int = 0b10
처럼 16진수는 앞에 0x, 2진수 바이너리 데이터는 0b를 붙여 구분합니다.
추가로, 코틀린의 기본자료형은 정수형은 Int, 실수형은 Double입니다.
(5) 특수문자
기타 언어들과 같이 \ 키워드를 앞에 붙여줍니다 .
(6) 논리형 Boolean
true, false 두가지값만 저장 가능한 논리 자료형입니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
코틀린에서는 '명시적 형 변환'만을 허용하고 '자동 형 변환'을 허용하지 않습니다.
명시적 형 변환의 사용 방법은
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
ex)
var a: Int = 10
var b: Long = a // 대입연산자 왼편과 오른편의 변수타입 불일치 -> 에러발생
ex)
var a: Int = 10
var b: Long = a.toLong() // 정상적으로 컴파일
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2. 배열 (0) | 2020.10.05 |
---|---|
0. 코틀린의 역사 (0) | 2020.10.05 |