변수 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 |