0.참고 자료
https://kotlinlang.org/docs/basic-types.html
Basic types | Kotlin
kotlinlang.org
https://www.boostcourse.org/mo132/joinLectures/28611
코틀린 프로그래밍 기본 1
부스트코스 무료 강의
www.boostcourse.org
1.변수 선언
코틀린에서는 값을 변경할 수 있는 가변 변수와, 값을 변경할 수 없는 불변 변수 두 가지 형태의 변수를 선언할 수 있다.
val : 불변 변수의 키워드 // java : final , c/c++ const
var : 가변 변수의 키워드
ex) val a : Int
ex) var b : Int
또한 null이 가능한 자료형과 null이 불가능한 자료형으로 구분된다.
? : 해당 변수를 nullable로 만들어주는 키워드
ex) val a : Int? =null
val b =2와 같이 자료형을 명시하지 않아도 자료형을 추론하여 b는 Int형 변수가 된다.
val b와 같이 자료형을 지정하지 않은 변수는 반드시 선언하면서 변수를 초기화해줘야 한다.
※주의사항
- 변수 이름은 숫자로 시작하면 안 된다. //val 111abc =3
- 변수 이름에 코틀린에서 사용되는 키워드는 사용할 수 없다. //val while =3
- 변수 이름은 의미 있는 단어를 사용하여 만드는 것이 좋다.
- 카멜 표기법을 사용한다.
//java
//int a = 10;
//kotlin
//val : read-only, 변할 수 없는 상수
//var : 일반적인 변수, 재할당 가능한 변수
val a : Int = 1
val b = 2
val c : Int
c = 3
var d : Int = 5
var e : Int?
e = null //success
d=null //error
println(e==null) //null-check
//result : true
var num : Int //success
var num1 //error
d=10 //success
b=5 //error
2.자료형
- 프로그래밍 언어의 자료형은 기본형 자료형과 참조형 자료형으로 구분하는데,
코틀린에서는 기초 타입이 없고 모든 타입이 객체 형태이다.
//기초 형태(기본형 : Primitive Data Type)는 가공되지 않은 순수한 자료형으로 프로그래밍 언어에 내장되어 있음
//객채 형태(참조형 : Reference Type)는 객체를 생성하고 동적 공간에 데이터를 둔 다음 이것을 참조하는 자료형
//자바에서는 int, long, float, double 등의 기본형과 String, Date 같은 참조형을 모두 사용 - 타입 클래스에 정의된 기초 함수와 프로퍼티를 사용할 수 있다.
- Any는 코틀린의 최상위 클래스이기 때문에 어떤 타입의 데이터도 대입할 수 있다.
1. 정수 자료형
형식 | 자료형 | 크기 | 값의 범위 |
정수 자료형 | Byte | 1Byte | -2^7 ~ 2^7-1 |
Short | 2Byte | -2^15 ~ 2^15-1 | |
Int | 4Byte | -2^31 ~ 2^31-1 | |
Long | 8Byte | -2^63 ~ 2^63-1 |
형식 | 자료형 | 크기 | 값의 범위 |
부호 없는 정수 자료형 | UByte | 1Byte | 0 ~ 2^8-1 |
UShort | 2Byte | 0 ~ 2^16-1 | |
UInt | 4Byte | 0 ~ 2^32-1 | |
ULong | 8Byte | 0 ~ 2^64-1 |
숫자 크기에 상관없이 기본형은 모두 Int형으로 추론된다.
자바와는 달리 코틀린에서는 숫자 타입 간의 변환을 자동으로 해주지 않는다.
val b : Byte = 123 //Byte
val s : Short =500 //Short
val i = 10 //Int
val ii : Int //Int
val l = 10L //Long
val ll : Long //Long
val ub : UByte = 123u //UByte
val us : UShort =500u //UShort
val ui = 55555u //UInt
val ul : ULong = 3431412u //Ulong
//길이가 긴 숫자의 가독성을 높이는 방법
val num1 = 1_234_567 //Int
//result : 1234567
val num2 = 1_2345_6789L //Long
//result : 123456789
val num3 = 100 //Int
val num5 : Long = num3 + 200L //Long
//result : 300
val num6 : Long = num3.toLong() //Long
//result : 100
2. 실수 자료형
형식 | 자료형 | 크기 | 값의 범위 |
실수형 | Float | 4Byte | 1.4E-45 ~ 3.4E+38 |
Double | 8Byte | 4.9E-324 ~ 1.7E+308 |
기본형은 Double이다.
val f = 10.2F //Float
val ff : Float = 10.2F
val d = 10.5 //Double
val dd :Double = 10.5 //Double
val eNum1 = 3.14E2 // Double
//result : 314.0
val eNum2 = 3.14e-2 //Double
//result : 0.0314
3. 논리 자료형
형식 | 자료형 | 크기 | 값의 범위 |
논리형 | Boolean | 1bit | true,false |
val bool1 = true //Boolean
val bool2 : Boolean = false // Boolean
4. 문자 자료형
형식 | 자료형 | 크기 | 값의 범위 |
문자 | Char | 2byte | 0~2^15-1 |
코틀린에서는 Char 자료형을 정수로 표현하는 데 사용할 수 없다.
ex) '1'.toInt() ->49 //기대값 : 1 but 실제값 : 49(ASCII값 반환)
--> Character.getNumericValue('1') -> 1 // 기대값 : 1, 실제값 : 1
val ch1 = 'c' //Char
val ch2 : Char ='d' //Char
val ch3 ='1'
println(ch3.toInt())
//result 49
println(Character.getNumericValue(ch3))
//result 1
5. 리터럴 상수
십진법 : 123
//Long은 123L
16진수 : 0x0F
2진수 : 0b00001011
//16진수는 앞에 0x를 붙이고 2진수는 앞에 0b를 붙인다.
Double : 123.5
Float : 123.5F
언더바(_)를 이용해 가독성을 높일 수 있다.
val million = 1_000_000
val hexNum = 0xAB_CD_EF_12
//result : ABCDEF12
val binNum = 0b0001_0110
//result : 00010110
'언어 > Kotlin&Java' 카테고리의 다른 글
[Kotlin/Java] Android Studio에서 테스트 환경 구축하기_1(수정) (0) | 2021.08.12 |
---|---|
[코틀린/Kotlin] 기초 #04_기본형 vs 참조형 (0) | 2021.08.10 |
[코틀린/Kotlin] 기초 #03_코틀린 입출력 (0) | 2021.08.09 |
[코틀린/Kotlin] 기초 #02_문자열( == vs ===) (2) | 2021.07.28 |
[코틀린/Kotlin] 기초 #00_코틀린의 특징 (1) | 2021.07.09 |
댓글