티스토리 뷰

Programming/Kotlin

Kotlin DataType

Albothyl 2022. 4. 15. 16:00
  1. 숫자
    1. 정수
      1. Byte, Short, Int, Long
      2. val one = 1 // Int
        val threeBillion = 3000000000 // Long
        val threeBillion = 3_000_000_000 // Long
        val oneLong = 1L // Long
        val oneByte: Byte = 1
        val bytes = 0b11010010_01101001_10010100_10010010
    2. 실수
      1. Float, Double
      2. val pi = 3.14 // Double
        val one: Double = 1 // Error: type mismatch
        val oneDouble = 1.0 // Double
        val e = 2.7182818284 // Double
        val eFloat = 2.7182818284f // Float, actual value is 2.7182817
    3. 연산자
      1. Equality: a == b | a != b
      2. Comparison: a < b | a > b | a <= b | a >= b
      3. Range: a..b | x in a..b | x !in a..b
    4. 주의 사항
      1. On the JVM platform, numbers are stored as primitive types: int, double, and so on. Exceptions are cases when you create a nullable number reference such as Int? or use generics. In these cases numbers are boxed in Java classes Integer, Double, and so on. 즉 nullable 인 경우에는 "primitive types: int, double"이 아닌 "boxed in Java classes Integer, Double"로 처리되어 숫자는 같지만 다른 참조 객체일 수 있다.
      2. val a: Int = 100
        val boxedA: Int? = a
        val anotherBoxedA: Int? = a
        
        val b: Int = 10000
        val boxedB: Int? = b
        val anotherBoxedB: Int? = b
        
        println(boxedA == anotherBoxedA) // true
        println(boxedB == anotherBoxedB) // true
        
        println(boxedA === anotherBoxedA) // true
        println(boxedB === anotherBoxedB) // false
      3. 형변환
      4. // Hypothetical code, does not actually compile:
        val a: Int? = 1 // A boxed Int (java.lang.Integer)
        val b: Long? = a // implicit conversion yields a boxed Long (java.lang.Long)
        print(b == a) // Surprise! This prints "false" as Long's equals() checks whether the other is Long as well
      5. 나누기
      6. val x = 5 / 2
        //println(x == 2.5) // ERROR: Operator '==' cannot be applied to 'Int' - 'Double'
        println(x == 2) // true
        
        val x = 5 / 2.toDouble()  
        println(x == 2.5) // true
  1. 논리
    1. Boolean
    2. val myTrue: Boolean = true
      val myFalse: Boolean = false
      val boolNull: Boolean? = null
      
      println(myTrue || myFalse) // OR
      println(myTrue && myFalse) // AND
      println(!myTrue) // NOT
  2. 문자
    1. Char
    2. val aChar: Char = 'a' // 싱글 쿼테이션으로 묶인다.
      println(aChar)
      println('\\n') //prints an extra newline character  
      println('\\') //prints an escape sequences is backslash ()  
      println('\\uFF00')
    3. String
    4. val str = "abcd" // 더블 쿼테이션으로 묶인다.
      println(str.uppercase()) // Create and print a new String object
      println(str) // the original string remains the same
      
      
      println("\\n") //prints an extra newline character  
      println("\\") //prints an escape sequences is backslash ()//# raw string  
      
      val text = """ // raw string  
      for (c in "foo")"""  
      println(text) // escape, newline character 도 모두 입력한 그대로 출력된다.
      
      """
           Tell me and I forget. // trim not applied. Tell 앞의 공백이 그대로 출력된다.
          |Teach me and I remember. // trim applied. Teach 앞의 공백이 제거되어 출력된다.  
      """.trimMargin() // trimMargin의 default margin prefix = "|". 사용자가 직접 지정할 수 있다. .trimMargin("#)// template는 raw string에도 적용할 수 있다.  
      
      val dollar = "dollar"  
      val money = """Item 1: 1${dollar}"""  
      val receipt = """Item 1: $1.00${"\\n"}Item 2: $0.50"""
      
      //# template  
      val n = 1  
      val message = "$n is ${if(n > 0) "positive" else "not positive"}"  
      println(message) // 1 is positive
      
      //# traimMargin  
      val text = """
      `print(c)`
      
      //# concat  
      val s = "abc" + 2  
      println(s + "def") // abc2def
      val numChar: Char = '1'  
      println(numChar.digitToInt()) // 문자를 숫자로 변환한다. 주의: String에는 이 함수가 없다.
          ```

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

Kotlin Conditions  (0) 2022.04.23
Kotlin Operator  (0) 2022.04.23
Kotlin Class  (0) 2022.04.16
Kotlin Visibility Modifiers  (0) 2022.04.16
Kotlin Variable  (0) 2022.04.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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 31
글 보관함