본문 바로가기
개발새발/코틀린

[코틀린/Kotlin] 자료형과 변수

by 조희우 2025. 8. 9.

자료형

기본 자료형

  • 가공되지 않은 순수한 자료형: 프로그래밍 언어에 내장된 자료형
  • java: boolean, char, int, double 등 논리형, 문자형, 정수형, 실수형
  • kotlin: X

참조형 자료형

  • 동적 공간에 데이터를 둔 다음에 참조하는 자료형
  • java: String, Date, Class, Interface, Enum 등
  • kotlin: 모든 자료형
    • null 값을 안전하게 처리하기 위한 설계의 일환
  1. 정수형
    • 부호가 있는 정수형과 없는 정수형으로 나뉨
    • 부호가 없는 자료형은 실험적인 기능으로 개발에 주의가 필요
    자료형 크기 (Byte) 범위
    Byte 1 -128 ~ 127
    Short 2 32768 ~ 32767
    Int 4 2147483648 ~ 2147483647
    Long 8 9223372036854775808 ~ 9223372036854775807
    UByte 1 0 ~ 255
    UShort 2 0 ~ 65535
    UInt 4 0 ~ 4294967295
    ULong 8 0 ~ 18446744073709551615
  2. 실수형자료형 크기 (Byte) 범위
    Float 4 1.4E-45 ~ 3.4028235E38
    Double 8 4.9E-324 ~ 1.7976931348623157E308
  3. 그 외 자료형자료형 설명
    Boolean 논리 자료형으로 true 또는 false를 반환함
    Char 문자 자료형으로 작은 따옴표('') 사이 한 글자를 저장함 ex)'a', '가', '1' 등
    String 문자열 자료형으로 큰 따옴표("") 사이의 문자들을 저장함 ex)"abcd", "가나다라", "1234" 등

변수

변수 선언

  1. val
    • value의 약자
    • 불변형(immutable) 변수
    • 읽기만 가능한 변수
    • java의 final
  2. var
    • variable의 약자
    • 가변형(mutable) 변수
    • 읽기와 쓰기가 가능한 변수: 선언 후 다른 값으로 수정 및 연산을 통한 변경 가능

변수 선언 규칙

  1. 변수는 숫자로 시작하면 안된다.
  2. 변수의 이름은 while, if, when 등과 같이 코틀린 내부에서 사용되는 키워드를 사용할 수 없다.
  3. 변수의 이름은 사용 용도에 따라 의미 있는 단어를 사용한다.
  4. 여러 단어를 사용하여 변수 이름을 만들 경우 카멜 표기법을 사용한다.
    • 카멜 표기법: 낙타 표기법
      • 첫 글자를 대문자로 표기하는 명명법으로 첫 단어의 첫 글자는 소문자로 표기
      • 일반 변수, 함수명에 사용
    • 파스칼 표기법
      • 첫 단어의 첫 글자도 대문자로 표기
      • 클래스, 인터페이스 등의 이름에 사용

변수 자료형

  • 변수 선언 시 값을 할당하면 자료형을 자동으로 유추
  • 자료형을 명시할 수도 있음
val name: String = "Kotlin" // String 타입으로 명시
var age = 23 // Int 타입으로 자동 유추

 

  • 정수형은 보통 Int형으로 추론되므로 범위에 따라 지정이 필요
val long = 123L // Long형
val num = 0X0F // 0x를 사용하여 16진 표기 Int형
val num2 = 0b00101 // 0b를 사용하여 2진 표기 Int형
  • 부호가 없는 자료형은 값에 u 식별자로 구분
val uNum1: Byte = 200u
val num2: UShort = 40000u
val num3 = 46298u // UInt형
val unum: uLong = 32890uL
  • 언더스코어를 사용하여 자릿값 구분소수점의 이동은 숫자 오른쪽에 e 혹은 E와 함께 가수를 제외한 지수 입력
val Enum = 3.14e-2 // 0.0315
val enum2 = 3.14E2 // 314 ( +기호는 생략 가능)