본문 바로가기

# 02/코틀린

[Kotlin] 변수와 자료형

반응형

변수 var, val 선언가능


var 바꿀 수 있음

val 최초로 지정한 변수 변경 안됨. 상수 개념

(val 변수를 선언해 놓고 변경해야 할 때 var로 바꾸는 방법을 권장함)



val username : String = "joy"

선언키워드, 변수이름, 자료형, 값


val username = "joy"

코틀린이 자료형을 추론하여 username의 자료형을 String으로 결정


var username // 자료형을 지정하지 않은 변수는 사용할 수 없다.


val number = 10                              // number 변수는 int 형으로 추론

var language = "Korean"                   // language 변수는 String 으로 추론

val secondNumber : Int = 20             // 자료형을 Int형으로 명시적으로 지정

language = "English"                       // var 키워드로 선언한 변수는 값을 다시 할당할 수 있음


println("number : $number")

println("language : $language")

println("secondNumber : $secondNumber")


자료형을 지정하지 않은 변수를 클릭해 입력 커서를 놓고 Ctrl + Shift + p 를 누르면 추론된 자료형을 알 수 있음!!


일반 변수, 함수명 등 카멜표기법 - 시작 소문자 두단어 합성시 두번째 단어 시작 대문자 firstNumber

클래스, 인터페이스 등 파스칼 표기법 - 시작 대문자 두단어 합성시 두번째 단어 시작 대문자 FirstNumber



기본형 (Primitive data type)

가공되지 않은 순수한 자료형으로 프로그래밍 언어에 내장

int, long, float, double 등 - 소문자로 시작


참조형 (Reference type)

동적 공간에 데이터를 둔 다음 이것을 참조하는 자료형

Int, Long, Float, Double 등 - 대문자로 시작



자바는 기본형을 사용하여 소문자로 변수 자료형을 지정해줌

코틀린은 기본형을 사용하지 않고 참조형만 사용 때문에 다 대문자로 자료형 지정해줘야됨!!

단, 코틀린도 컴파일할 때 알아서 참조형을 기본형으로 변경하여 메모리 사용량 최적화 됨 - 기본형이 메모리 사용량 더 적음


기본형은 Stack에 int 값이 저장되고 참조형은 Heap메모리(동적메모리)에 값이 저장되고 Stack에 객체의 참조 주소가 저장됨


기본형은 Stack에 바로 저장되서 더 빠르게 값을 사용할 수 있음.

단, 기본형과 참조형을 같이 쓰게 되면 비교할 때 오류가 발생할 수 있다.


int a = 77;   // 기본형

Person person = new Person();   // 객체 참조형으로 person 객체를 위해 참조 주소를 가진다.



부호없는 정수형 - 잘안쓴다고..

ULong, UInt, UShort, UByte 도 있음. 실제 쓰는 것보다 두배 범위까지 사용가능 음수 범위 안쓰기 때문에



자료형 생략

val num01 = 127                        // Int형으로 추론

val num02 = -32768                   // Int형으로 추론

val num03 = 2147483647            // Int형으로 추론

val num04 = 9232565431315464  // Long형으로 추론


접미사 접두사 사용

val exp01 = 123                   // Int형으로 추론

val exp02 = 123L                 // 접미사 L을 사용해 Long형으로 추론

val exp03 = 0x0F                 // 접두사 0x를 사용해 16진 표기가 사용된 Int형으로 추론

val exp04 = 0b00001011       // 접두사 0b를 사용해 2진 표기가 사용된 Int형으로 추론


작은 값의 사용

val exp08 : Byte = 127           // 명시적으로 자료형을 지정(Byte)

val exp09  = 32767               // 명시적으로 자료형을 지정하지 않으면 Short 범위의 값도 Int 형으로 추론

val exp10 : Short = 32767       // 명시적으로 자료형을 지정(Short)


부호 없는 정수 자료형

val uint : UInt = 153u

val ushort : UShort = 65535u

val ulong : ULong = 46322342uL

val ubyte : UByte = 255u


큰 수를 읽기 쉽게 하는 방법

읽기 쉽게 하기 위해 언더스코어(_)를 포함해 표현 가능


val number = 1_000_000

val cardNum = 1234_1234_1234_1234L

val hexVal = 0xAB_CD_EF_12

val bytes = 0b1101_1101


실수 자료형

val exp01 = 3.14     // 디폴트 Double형으로 추론(기본)

val exp02 = 3.14F   // 식별자 F에 의해 Float형으로 추론    - Double이 범위가 더 큼


표현식과 $ 기호 사용하여 문자열 출력하기

var a= 1

val s1 = "a is $a" // String 자료형의 s1을 선언하고 초기화. 변수 a가 사용됨.


fun main() {

var a = 1

var str1 = "a = $a"

var str2 = "a = ${a+2}" // 문자열에 표현식 사용. a 를 수식으로 사용하고 싶을 때는 {} 안에 넣어주면 됨.


println("str1 : \"$str1\", str2 : \"$str2\"")    ""안에 "를 넣고 싶으면 "앞에 \ 넣어주면 됨.

}


반응형

'# 02 > 코틀린' 카테고리의 다른 글

[Kotlin] 자료형 변환  (0) 2019.07.03
[Kotlin] 변수의 null  (0) 2019.07.03
[Kotlin] 기본 연산자  (0) 2019.07.03
[Kotlin] 패키지  (0) 2019.07.03
[Kotlin] Basic syntax  (0) 2019.02.13