한 걸음 두 걸음

03. kotlin basic types 본문

Language/Kotlin

03. kotlin basic types

언제나 변함없이 2019. 4. 28. 21:27
반응형

1. basic types 기본 타입

코틀린은 모든 타입이 객체입니다. 그래서 모두 대문자로 시작합니다.
예 ) Double, Int, Byte...
java와 다른 점이 있다면 char를 숫자로 지원하지 않는다는 것입니다.

val c : Char = 'a' // OK
val c : Char = 45 // NO

1.1 리터럴상수

기본설정 : 10진수 (123)이나 double (2.3)
수동명시 : Long (123L ) Float ( 2.3f ) 2진수(ob0101111) 16진수 (OX0F)
(8진수는 지원하지 않습니다.)

1.2 언더바 표현

val won = 1_000_000 //백만

1.3 표현 주의사항

일반 val의 경우 primitive type이지만, Nullable이나 Generic의 경우엔 primitive가 아닌 일정 자료형으로 유지되지 않습니다.

val a : Int = 100
val b : Int? = 100
println( a === b) //false

값은 같으나, 자료형이 다릅니다.

1.4 자료형간 호환성이 없습니다.

int형 변수 a에 long값을 넣을 수 없습니다.

int a: Int = 1
int b: Long = 2
// b = a 안됩니다.
b = a.toLong()

kotlin에서는 이와같이 명시적인 형변환을 통해 서로 다른 자료형에 값을 넣을 수 있기 때문에

형변환 함수
toByte() toShort() toInt() toLong() toFloat() toDouble() toChar() 등을 많이 사용합니다.

2, 배열

배열은 Array클래스로 표현됩니다.
get이나 set등의 함수를 사용하여 접근합니다. ([index]도 사용할 수 있습니다)

var array:Array<String> = arrayOf("kotiln","lecture")
println(array.get(0))
println(array[0])
println(array.size)

2.1 배열 선언

i ) 팩토리함수 사용

val a = Array(5, {i -> i.toString() } )
//0,1,2,3이 문자열로 입력됩니다.

ii) arrayOf() 라이브러리 함수 사용

var array:Array<String> = arrayOf("kotiln","lecture")
// 또는
var a = arrayOf("0","1","2","3","4")

2.2. primitive 타입의 배열

var array:Array<String> = arrayOf("kotiln","lecture")와 같이 쓰면
String이라는 제네릭 객체로 사용되기 때문에 오버헤드가 발생합니다. 그러므로
Null값이 필요하지 않다면
IntArray, ShortArray, IntArray 등을 사용하여 primitive로 활용하는 것이 보다 효율적입니다.

  val x : IntArray = intArrayOf(1,2,3)
  x[0] = 7
  println(x.get(0))

3. 문자열

문자열을 String클래스로 표현되며 char로 구성되어있습니다.(java와 같습니다.)

var x : String = "Kotlin"
println(x.get(0)) //charAt대신에 get이 활용됩니다.
println(x.length)

3.1 문자열 리터럴

기존에 java에서 사용하던 방식이 escaped string방식(\n)이었다면,
코틀린에서는 raw string 방식(""" """)도 사용할 수 있습니다.

escaped string 방식

val s = "Hello, world!\n"

raw string 방식

val s = """   "    자동 개행문자 적용됩니다.     "   """
반응형

'Language > Kotlin' 카테고리의 다른 글

Kotlin 07 ] 클래스와 상속  (0) 2019.05.20
Kotlin ] 06 Package, Return and Jumps  (0) 2019.05.20
Kotlin 코틀린 ] 05 Control Flow  (0) 2019.05.20
02 코틀린 기본 문법  (0) 2019.04.28
01. 코틀린을 배워야하는 이유  (0) 2019.04.27