일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ensemble
- fpga
- 슈퍼패미컴
- 오블완
- analogue
- 닌텐도
- Game Gear
- GOG
- ps4
- MSX
- PC엔진
- 건담
- snes
- 메트로이드
- Apple II
- 슈퍼마리오
- Saturn
- 3DS
- mobilesuit
- 게임보이
- 메가드라이브
- 게임기어
- 닌텐도스위치
- mister
- 모빌슈트
- 컨트롤러
- 앙상블
- 새턴
- 티스토리챌린지
- 패미컴
- Today
- Total
Just a Blog
개인적인 코틀린(Kotlin) 정리 (2) - 데이터 타입, Array, String 본문
1. 데이터 타입
Java와 다르게 Kotlin에는 primitive 타입이 없다. 모든 타입은 오브젝트이다.
(1) 숫자 타입
① 종류
- Long: 64비트 범위 정수 표현
- Int: 32비트 범위 정수 표현
- Short: 16비트 범위 정수 표현
- Byte: 8비트 범위 정수 표현
- Double: 64비트 범위 실수 표현
- Float: 32비트 범위 실수 표현
② 표현
변수에 숫자를 직접 할당할 때, 정수의 기본형은 Int형으로 추론하고 실수의 기본형은 Double형으로 추론한다. 정수값 뒤에 'L'을 붙이면 Long 타입으로 추론되고, 실수값 뒤에 'F'를 붙이면 Float 타입으로 추론한다.
val num1 = 123 (정수값은 기본적으로 Int로 추론한다)
val num2 = 34567L ('L'을 붙여서 Long 타입으로 추론)
val value1 = 3.14 (실수값은 기본적으로 Double로 추론한다)
val value2 = 5.152F ('F'를 붙여 Float 타입으로 추론)
16진수값에는 '0x'를 붙이고 2진수값에는 '0b'를 붙여서 표현한다.
(2) Boolean
Java의 boolean과 유사하다. C 언어에서 integer값이 논리값을 표현하는 것과 다르게, Int는 Boolean으로 변환되지 않는다.
(3) Char
유니코드, escape 문자 등의 한 글자를 표현한다. Java에서처럼 숫자로 인식되지는 않지만 toInt() 등을 사용하여 변환할 수는 있다.
(4) String
Java의 String과 유사하다.
2. 범위
(1) '..' 연산자
비교할 수 있는(comparable) 데이터 타입은 '..' 연산자를 통해 범위를 만들 수 있다.
val n = 1..9
val c = 'a'..'z'
(2) 'in' 연산자
범위가 만들어지면 'in' 연산자를 통해 특정값이 그 범위 안에 있는지(양쪽 끝 값도 포함해서)를 Boolean값으로 반환받을 수 있다.
val digit = 1..9
val v = 3
if (v in digit) {
println("normal condition")
}
(3) for 루프에 활용
범위를 통해 for 루프를 돌게 할 수 있다. 범위의 오름차순으로 루프를 돈다.
val oneToFive = 1..5
for (z in oneToFive) {
println(z)
}
3. Array
(1) arrayOf() 함수
데이터의 array는 arrayOf()라는 라이브러리 함수로 만들 수 있다.
val arr1 = arrayOf(1, 2, 3, 4, 5) (array 요소들을 arrayOf() 함수의 인자로 직접 입력)
(2) Array 생성자
Array의 생성자를 통해 만들 수 있다.
val arr2 = Array(5, {n -> n+3}) (array의 개수와 요소들을 만드는 higher order function을 넣어 생성)
(3) 데이터 타입
만들어지는 array의 데이터타입은 요소들을 다 포함할 수 있도록 생성됨
val arr3 = arrayOf(2, 4, 6) (arr3의 타입은 Array<Int>)
val arr4 = arrayOf(3, 'c', "Hello") (arr4의 타입은 Array<Any>)
4. String 표현
(1) escape 문자, raw text 표현
Java와 동일하게 String에 escape 문자를 넣을 수 있다.
val text = "Hello. \n I am Tom."
이것을 직접 입력하고 싶다면 문자열에 따옴표 세 개(triple quote)를 사용한다.
val text2 = """Hello.
I am Tom."""
(2) String 연결 (concatenation)
Java 처럼 '+' 연산자로 String을 연결할 수 있다.
val mytext = "Hello, " + "World"
(3) String template
String 내에 실제값, 변수값, 수식 등을 넣어 표현할 수 있다. String 내 '$'를 변수명이나 수식 등에 붙이면 해당 문자열이 만들어 진다(명확하게 표현하기 위해 '{', '}' 사용 가능).
val name = "Tom"
val text = "Your name is $name, and your name has ${name.length} characters."
val eval = "3 + 4 = ${3 + 4}"