Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- minikube
- kotlin spring
- Java
- Spring
- 정보처리기사 실기 기출문제
- 티스토리챌린지
- 공부
- 기록으로 실력을 쌓자
- kotlin
- 코틀린 코루틴의 정석
- kotlin querydsl
- Linux
- AI
- aws
- APM
- IntelliJ
- CKA 기출문제
- kotlin coroutine
- mysql 튜닝
- Elasticsearch
- Kubernetes
- CloudWatch
- 정보처리기사실기 기출문제
- MySQL
- AWS EKS
- Pinpoint
- 오블완
- 정보처리기사 실기
- PETERICA
- CKA
Archives
- Today
- Total
피터의 개발이야기
[Kotlin] 데이터 타입 본문
반응형
ㅁ 들어가며
ㅇ Kotlin Docs-기본 타입과 devkuma-Kotlin 데이터 타입를 보면서 코틀린 공부를 하면서 정리하였다.
ㅁ 기본 데이터 타입
var a: Boolean = true // 논리 (true, false)
// Integer types
var b: Byte = 123 // 8 트 정수 (-128 ~ 127)
var c: Short = 123 // 16비트 정수 (-32768 ~ 32767)
var d: Int = 123 // 32비트 정수 (-2 31승 ~ 2 31승 -1)
var e: Long = 123L // 64비트 정수 (-2 63승 ~ 2 63승 -1)
// Floating-point types
var f: Float = 12.3F // 32비트 부동 소수점
var g: Double = 12.3 // 64비트 부동 소수점
// Characters
var h: Char = 'A' // 문자 (글자 하나)
var i: String= "ABC" // 문자열
ㅁ Numbers
123 10진수 (Int)
123L 10진수 (Long)
0x0F 16진수
0b10111100 2진수
123.4 실수 (Double)
1.23e2 실수 (Double)
123.4f 실수 (Float)
1.23e2 실수 (Float)
12_345_678 자리 구분
ㅇ Kotlin에서는 8진수 리터럴이 지원되지 않습니다.
ㅇ 소수점:123
ㅇ 롱은 대문자로 태그가 지정됩니다 L.123L
ㅇ 16진수:0x0F
ㅇ 바이너리:0b00001011
val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
ㅇ 밑줄은 무시되어 밑줄을 사용하여 숫자 상수를 더 읽기 쉽게 만들 수 있습니다.
ㅁ Booleans
val myTrue: Boolean = true
val myFalse: Boolean = false
val boolNull: Boolean? = null
println(myTrue || myFalse)
// true
println(myTrue && myFalse)
// false
println(!myTrue)
// false
println(boolNull)
// null
ㅁ Characters
ㅇ char: 문자는 작은 따옴표로 구분한다.
'A'
ㅁ 이스케이프 시퀀스
\t // 탭
\b // 백스페이스
\n // 새 줄(LF)
\r // 캐리지 리턴(CR)
\' // 작은따옴표
\" // 큰따옴표
\\ // 백슬래시
\$ // 달러 표시
\uFF00 // Unicode 문자
println('\n') // 새 줄이 출력된다.
println('\uFF00') //
ㅁ 형변환
123.toString() // Int에서 String으로 변환
"123".toInt() // String을 Int로 변환
"3.14".toInt() // String을 Int로 변환 (변환 할 수 없는 경우는 null)
1.23.toInt() // Double에서 Int로 변환 (잘라 내기)
1.23.roundToInt() // Double에서 Int로 변환 (반올림)
ㅁ String
"ABCDEF"
ㅇ String templates
var a = 1
// simple name in template:
val s1 = "a is $a"
a = 2
// arbitrary expression in template:
val s2 = "${s1.replace("is", "was")}, but now is $a"
ㅇ String formatiting
// 0추가
println(String.format("%07d", 31416))
// 0031416
// 소수점 자리
println(String.format("%+.4f", 3.141592))
// +3.1416
// 대문자 출력
println(String.format("%S %S", "hello", "world"))
// HELLO WORLD
ㅇ 여러 줄 String
val text = """
for (c in "foo")
print(c)
"""
ㅁ Range
# Iterate
for (x in 1..5) print(x) //12345
for (x in 1.rangeTo(5)) print(x) //12345
for (x in 1..10 step 2) print(x) //13579
for (x in 9 downTo 0 step 3) print(x) //9630
# If 안의 ranges
if (n in 1..10) println("OK") // n이 1~10에 포함된다면...
if (n !in 1..10) println("OK") // n이 1~10에 포함되 않는면...
# Char, String, Double 등으로도 사용할 수 있다.
if ('b' in 'a'..'z') println("OK")
if ("gz" in "aa".."zz") println("OK")
if (1.23 in 0.00..9.99) println("OK")
# list + if
val list = listOf("a", "b", "c")
if (-1 !in 0..list.lastIndex) {
println("-1 is out of range")
}
if (list.size !in list.indices) {
println("list size is out of valid list indices range, too")
}
ㅁ 데이터 타입 체크
# 타입 체크
if (obj is String) print("it's String")
if (obj !is String) print("Not a String")
# Class 체크 시 부모 인스턴스를 확인한다.
open class ClassA() {}
class ClassB(): ClassA() {}
var a = ClassA()
var b = ClassB()
println(a is ClassA) // true
println(a is ClassB) // false
println(b is ClassA) // true
println(b is ClassB) // true
# when을 이용한 체크
fun foo(a: Any) {
when (a) {
is String -> println("String")
is Char -> println("Char")
else -> println("Unknown")
}
}
ㅁ 다이나믹 형
Kotlin은 정적 타입 언어이지만, JavaScript로 컴파일 시 dynamic을 사용하여 동적 형변환이 가능하다.
var a : dynamic
a = 123 // 수치를 대입
a = "ABC" // 문자열을 대입
ㅁ 함께 보면 좋은 사이트
반응형
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin] 변수 선언 (0) | 2024.05.14 |
---|---|
[Kotlin] 기본 자료형과 참조 자료형 (0) | 2024.05.13 |
[Kotlin] 기본 문법 (0) | 2024.05.11 |
[Kotlin] 개발 환경 세팅 (0) | 2024.05.09 |
[kotlin] 코틀린 개요 (0) | 2024.05.08 |
Comments