ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] 자료형, 변수
    Kotlin 2022. 9. 14. 14:48
    package days01
    
    fun main(){
        // 리터럴
        // 코드 작성시에 값을 작성하는 문법
        // 정수(Int, Long): 100, 100L, 1_000_000
        // 정수형 자료에 L이 붙으면 Long형 자료를 의미
        // 큰 값의 함수를 구분하기 위해 천단위 구분기호(,)와 같은 기능으로 '_'을 중간에 넣음
    
        // 실수(Double, Float): 11.11, 22.22F
        // F가 사용되면 Float형 자료
    
        // 문자(Char): 'A', 'B'
        // 문자열(String): "문자열"
        // 진위형(Boolean): true, false
    
        // 특징: 자료형의 이름이 모두 "대문자"로 시작함. 모두 클래스형 자료이기 때문
    
        // 정수 리터럴
        println(100) // Int
        println(100000000000) // Long
        println(100000000000L)
        println(938_492_823)
        // 가끔 길이가 Long형 데이터를 개발자가 자리수 구분하여 사용하기 위해 위와 같이 사용
    
        // 실수 리터럴
        println(11.11)
        println(22.22F)
    
        // 문자 리터럴
        println('A')
        println('가')
    
        // 문자열 리터럴
        println("문자열")
    
        // 진위형 논리 리터럴
        println(true)
        println(false)
    }

     

    trimMargin(): 호출객체가 되는 문자열에서 각 행의 앞뒤 공백 및 행의 사작 문자('|')를 제거해주는 함수.

       // 복수형 String
       // 큰 따옴표 세개를 이용하여 복수행의 문자열을 하나의 데이터로 다룰 수 있음.
        println("동해물과 백두산이\n마르고 닳도록\n하느님이 보우하사\n우리나라 만세\n")
        println("""동해물과 백두산이
            |마르고 닳도록
            |하느님이 보우하사
            |우리나라 만세""".trimMargin())

    변수의 자료형

    -정수: Long(8), Int(4), Short(2), Byte(1)
    -부호가 없는 정수형: ULong(8), UInt(4), UShort(2), UByte(1)
    -실수: Double(8), FLoat(4)
    -논리: Boolean(1)
    -문자: Char(2)
    -문자열: String

     

    *자바의 자료형이 대부분 그대로 사용되지만 자료형의 이름 첫글자는 대문자로 씀. U가 붙은 자료형은 Unsingned를 의미 하며 음수가 없는 자료형을 칭함. Int가 -21억 ~21억의 표현 범위라면, UInt는 0~42억까지의 표현 범위를 갖음.

     

    변수의 선언

    -Kotlin은 변수 선언 시 val, var 두가지 키워드 사용

    -var: 선언 이후 값을 다시 저장할 수 있음

    -val: 선언 이후 값을 다시 저장할 수 없음

    -변수의 선언 양식: var/val 변수명: 타입=값

    -타입을 생략 시 저장하는 값에 따라 자료형이 자동으로 결정됨

    // int a=100; 자바
    // val a:Int=100; 코틀린
    
    val a1:Int=100; // 변수 이름 뒤에 :을 쓰고 자료형을 이어 써서 변수 선언
    println("a1=${a1}") // ${}안에 변수이름을 넣어서 변수의 값을 출력구문과 함께 출력
    println("a1=$a1") // 리터럴 출력이 아니라 변수 출력인 경우 ${}에서 {} 생략 가능
    val a2=100 // 변수선언시 자바스크립트처럼 자료형을 생략하면 저장하는 값에 따라 자동으로 자료형이 결정됨
    println("a2=$a2")
    var a3:Int=100
    val a4:Int=100
    // var로 선언된 변수는 값을 바꿀 수 있고 val로 선언된 변수는 초기화된 값을 변경할 수 없음
    println("a3:$a3")
    println("a4:$a4")
    a3=200
    println("a3:$a3")
    // val 변수는 값을 다시 저장 못함
    // a4=200 -> error

     

    null을 허용하거나 허용하지 않는 변수

    코틀린 변수는 선언할 때 그 변수가 null 값을 갖을 수 있는 변수인지 아닌지 결정할 수 있음. 평상 시의 변수선언은 null 값을 허용안함. 이는 프로그래밍 시 null 값이 저장되어져서 오는 오류들을 미연에 방지하기 위해서 만들어진 규칙. 다만, 우리가 프로젝트에서 로그인 결과 등을 알아 볼 때 변환된 값이 null인 경우 로그인하려는 아이디가 없다고 판단하듯이 null이 저장되는 것을 일부 허용하기 위해서 예외를 두고 있음. 변수 선언 시 자료형 뒤에 '?'을 붙여 null값을 허용하게 할 수 있음.

    var/val 변수명:자료형=값 // null 허용하지 않는 변수
    var/val 변수명:자료형?=값 // null을 허용하는 변수
    
    // var a5:Int=null // 에러
    var a5:Int=100
    var a6:Int?=null
    println("a5:$a5")
    println("a6:$a6")
    
    var a7:Int?=a5
    println("a7:$a7")
    // a8은 null을 허용하는 변수가 아니므로 null 값을 저장하고 있는 a6 변수로 초기화하는 동작이 오류임
    // var a8:Int=a6 // error
    // 코틀린은 모든 기본 타임 변수 및 값을 객체로 변환하여 사용함

    'Kotlin' 카테고리의 다른 글

    [Kotlin] 조건문 if  (0) 2022.09.14
    [Kotlin] 연산  (0) 2022.09.14
    [Kotlin] 함수  (0) 2022.09.14
    [Kotlin] 출력  (0) 2022.09.14
    [Kotlin] 설치  (0) 2022.09.10

    댓글

Designed by Tistory.