티스토리 뷰
728x90
변수
val timeInSeconds = 15
- val 키워드
한번 초기화하면 다시는 값을 대입할 수 없는 불변 변수를 정의하는 키워드.
자바의 final 변수와 비슷하다.
2. var 키워드
val과 반대로 가변 변수를 정의할 때 사용하는 키워드.
3. 타입 추론
변수 타입을 지정하지 않아도 컴파일러가 코드의 문맥에서 타입을 도출해주는 기능.
4. 변수 타입을 명시하는 경우
val text: String
text = "Hello!"
초깃값을 생략하고 다른 문장에서 변수를 초기화하는 경우 변수 타입을 명시해야 한다.
기본 타입
1. 타입
- 정수 타입: Byte, Short, Int, Long
- 실수 타입: Float, Double
- 문자 타입: Char
- 논리 타입: Boolean
2. 원시 타입, 참조 타입
- 원시 타입, 참조 타입이 존재하지 않는 것이 아닌 내부에 감춰져 있다.
- 보통 Boolean, Int와 같은 원시 타입을 nullable type으로 선언하면 참조 타입으로 지정된다.
- boxing의 오버헤드가 없는 원시 타입 배열을 생성할 수 있다.
- 원시 타입은 stack 영역에 실제 값을 저장하고, 참조 타입은 stack 영역에 실제 값이 가지는 주소를, heap 영역에 실제 값을 저장한다.
- 즉, 참조 타입보다 원시 타입을 사용할 때가 시간적 비용이 적다.
2. 비트 연산
자바 연산 | 코틀린 연산 |
<< | shl |
>> | shr |
>>> | ushr |
& | and |
| | or |
^ | xor |
~ | inv() |
3. 문자 타입 Char
var a = 'a'
println(a + 5) // f
문자에 대한 산술 연산 결과를 정수가 아닌 Char 결과로 돌려준다.
4. 수 변환
val n = 100 // Int
val l: Long = n // Error
범위가 큰 타입에 작은 타입을 대입할 수 없다.
(원시 타입과 참조타입의 박싱이 암시적으로 수행되기 때문)
728x90
'app > kotlin' 카테고리의 다른 글
[kotlin/코틀린] 프로퍼티 (0) | 2023.06.22 |
---|---|
[kotlin/코틀린] 널 가능성 (0) | 2023.06.22 |
[kotlin/코틀린] 클래스 정의하기 (0) | 2023.06.22 |
[kotlin/코틀린] 기초 문법 (문자열, 배열, 함수) (0) | 2023.06.22 |
[kotlin/코틀린] 기초 문법 (조건문, 루프, 예외 처리) (0) | 2023.06.22 |