코틀린 문법 - Basic types

kimgwon·2024년 10월 8일

Kotlin

목록 보기
2/19

🫧 Numbers

정수형

  • Byte : 8비트
  • Short : 16비트
  • Int : 32비트
  • Long : 64비트

부동 소수점형

  • Float : 32비트
  • Double : 64비트

✏️ 연산

Kotlin은 표준 산술 연산을 지원하며, +, -, *, /, % 연산자가 제공된다.
정수끼리의 나눗셈은 항상 정수 결과를 반환한다. 소수 부분은 버려진다.
부동 소수점 값을 얻으려면 명시적으로 변환해야 한다.

val x = 5 / 2
println(x == 2) // true

val x = 5 / 2.toDouble()
println(x == 2.5) // true

🫧 Unsigned Numbers

양수만 표현할 수 있다.

  • UByte : 8비트
  • UShort : 16비트
  • UInt : 32비트
  • Ulong : 64비트

🫧 Booleans

true, false 두 가지 값만 가질 수 있다.

  • Boolean

✏️ 연산

  • || : 논리합 (논리 OR)
  • && : 논리곱 (논리 AND)
  • ! : 부정 (논리 NOT)

Lazy Evalutaion
|| 연산자는 첫 번째 피연산자가 true일 경우, 두 번째 피연산자를 평가하지 않는다.
&& 연산자는 첫 번째 피연산자가 false일 경우, 두 번째 피연산자를 평가하지 않는다.


🫧 Characters

작은 따옴표(')로 감싸 사용한다.

  • Char

🫧 Strings

큰 따옴표(")로 감싸 사용한다. 문자열 템플릿($)을 사용하여 변수나 표현식을 문자열 내에 쉽게 삽입할 수 있다.

  • String

String vs StringBuilder

  • String 불변 객체. 어떤 연산을 수행하면 새로운 String 객체가 생성된다.
  • StringBuilder 가변 객체. 어떤 연산을 수행하면 기존 개체를 수정한다.
    문자열을 많이 변경해야하는 경우 StringBuilder를 사용하는 것이 효율적이다.

✏️ 문자열 템플릿

$ 기호로 변수나 표현식을 포함할 수 있다.

val name = "Kotlin"
println("Hello, $name!") // Hello, Kotlin!

✏️ 문자열 포맷팅

String.format()을 사용해 포맷팅할 수 있다.
형식 지정자(%d, %f, %s 등)를 사용하여 문자열을 포맷한다.

val formattedNumber = String.format("%07d", 31416)
println(formattedNumber) // 0031416

🫧 Arrays

일반적으로 배열 대신 컬렉션을 사용하는 것이 더 유연하고 효율적이다.
arrayOf() 함수 또는 Array 클래스 생성자를 사용하여 배열을 생성할 수 있다.

  • Array

성능 최적화를 위해 원시 타입 배열(IntArray, DoubleArray 등)을 사용하여 boxing overhead를 방지할 수 있다.

Boxing overhead
기본 타입을 객체로 변환할 때 발생하는 성능 부담
기본 타입이 객체로 변환되는 과정을 boxing,
객체 타입이 기본 타입으로 변환하는 과정을 unboxing이라고 한다.

기본 타입 vs 객체 타입
기본 타입 : int, double
객체 타입 : Int?, Integer, Double

✏️ 배열 생성

  • arrayOf()
  • arrayOfNulls() : 지정된 크기의 배열을 생성한다. 모든 요소를 null로 초기화한다.
  • emptyArray() : 지정된 타입의 빈 배열을 생성한다. 배열의 크기가 0이다.
val simpleArray = arrayOf(1, 2, 3)
val initArray = Array(5) { i -> (i * i).toString() }

val intArray = IntArray(5) // [0, 0, 0, 0, 0]

val twoDArray = Array(2) { Array(2) { 0 } }
val threeDArray = Array(3) { Array(3) { Array(3) { 0 } } }


// 크기가 5인 Int? 타입의 배열 생성 (모든 요소가 null로 초기화됨)
val intArray = arrayOfNulls<Int>(5) // [null, null, null, null, null]

// 빈 String 배열 생성
val emptyStringArray = emptyArray<String>()

✏️ 요소 접근 및 수정

배열은 크기는 고정이지만, 요소는 수정할 수 있다.
인덱스를 사용해 접근하고 수정할 수 있다.

val simpleArray = arrayOf(1, 2, 3)
simpleArray[0] = 10
println(simpleArray[0]) // 10


Refrence

Kotlin 공식 문서
https://hanyeop.tistory.com/448

0개의 댓글