[Kotlin] 기본 문법 3
기본 타입
- 코틀린에서 모든 것은 개체임
- 모든 것에 멤버 함수나 프로퍼티를 호출 가능
숫자
-
코틀린에서 Number은 클래스
-
코틀린에서 char는 숫자가 아님
-
리터럴
-
- 10진수
- Long : 123L
- Double : 123.5, 123.5e10
- Float : 123.5f
- 2진수 : 0b00001011
- 8진수 : 미지원
- 16진수 : 0x0F
-
밑줄’_‘사용 가능
-
-
예시
-
- val oneMillion = 1_000_000
- val creditCardNumber = 1234_5678_9012_3456L
- val socialSecurityNumber = 999_99_9999L
- val hexByte = 0xFF_EC_DE_5E
- val bytes = 0b11010010_01101001_10010100
-
Representation
-
Java플랫폼에서 숫자형은 JVM primitive type으로 저장됨
-
Nullable이나 제네릭의 경우에는 박싱됨
-
- 박싱된 경우 identity를 유지하지 않음
Explicit Conversions
-
작은 타입은 큰 타입의 하위 타입이 아님, 즉 작은 타입에서 큰 타입으로의 대입이 안됨
-
- 명시적으로 변환을 해주어야 함
문자
- char는 숫자로 취급되지 않음
배열
-
배열은 Array 클래스로 표현됨
-
get, set ([] 연산자 오버로딩됨)
-
size 등 유용한 함수 포함
var array: Array<String> = arrayOf("A", "B") println(array.get(0)) println(array[0]) println(array.size)
-
배열 생성
-
-
Array의 팩토리 함수를 이용
-
val a = Array(5, {i -> i.toString() }
-
-
-
arrayOf()등의 라이브러리 함수 이용
val a = arrayOf("0", "1", "2", "3", "4")
-
-
특별한 Array클래스
-
-
Primitive타입의 박싱 오버헤드를 없애기 위한 배열
-
IntArray, ShortArray
-
Array를 상속한 클래스들은 아니지만, Array와 같은 메서드와 프로퍼티를 가짐
-
size등 유용한 멤버 함수 포함
-
val x: IntArray = intArrayOf(1,2,3) x[0] = 7 println(x.get(0)) println(x[0]) println(x.size)
-
문자열
-
문자열은 String클래스로 구현
-
String은 characters로 구성됨
-
s[i] 와 같은 방식으로 접근 가능 (immutable이므로 변경 불가)
-
문자열 리터럴
-
-
excaped string (“Kotlin”)
-
- 전통적인 방식으로 Java String과 거의 비슷
- Backslash를 사용하여 excaping처리
-
raw string(“"”kotlin”””)
-
-
escaping처리 필요 없음
-
개행이너 어떠한 문자도 포함 가능
val s = "Hello, world! \n"
val s = """ "'이것은 코틀린의 raw String 입니다.'" """
-
-