ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • kotlin 문법 정리 (1)
    kotlin 2023. 6. 17. 16:40
    반응형

    특징

    자바를 대체 하기 위한 개발 언어

    자바의 몇몇 약점들을 개선

    자바 가상머신과 호환 되도록 제작


    클래스 이름의 표기법은 파스칼 표기법

    ClassName

    함수 변수 이름 카멜 표기법

    functionName


    코틀린으느 두가지 방식으로 변수를 선언

    var

    일반 적인 변수

    언제든지 읽기 쓰기 가능

    val

    런타입 변수로 한번 실행되면 수정 되지 않음

    • 클래스에 선언된 변수
    • Property
    • 이외에 Scope 내에 선언된 변수
    • Local Variable(로컬 변수)

    ※ 코틀린은 기본적으로 NUll을 허용하지 않음

     

    fun main() {
         var a : Int
        
        println(a)
    		// Variable 'a' must be initialized
    		// 에러 발생
    }
    
    fun main() {
         var a : Int = 123
        
        println(a)
    		// 123
     
    }

    만약 null을 허용하고 싶다면 아래럼 null을 허용 해줄수 있음

    ※ 꼭 필요한 경우에만 사용해주자!

    var a:Int? = null
    

     

    코틀린 기본자료형 (자바와 동일)

    정수형

    Byte = 8bits

    Short = 16bits

    int = 32bits

    Long = 64bits

     

    var intValue:Int = 123
    var LongValue:Long = 123L // 뒤에 L 표기
    var intValueByHex:Int = 0x1af // 16 진수의 경우 앞에 0x 붙여줘야함
    var intValueByBin:Int = 0b10110110 // 2진수의 경우 0b 를 앞에 붙여 준다
    
    //코틀린은 8진수의 표기는 지원하지 않음

     

    실수형

    Float 32bits

    Double 64bits

     

    var intValue:Double = 123.5
    var LongValueWithExp:Double = 123.5e10 // 지수 표기법 추가 
    var floatValue:Float = 123.5f // 뒤에 소문자 또는 대문자 F를 붙여주면 됨

     

    형변환

    // 형 변환 함수
    toByte()
    toShort()
    toInt()
    toLong()
    toFloat()
    toDouble()
    toChar()
    
    ex)
    var a:Int = 123
    var b:Long = a.toLong()

     

    ※ 코틀린은 명시적 형변환 만 지원함

    다른 언어들이지원하는 암시적 형변환은 지원하지 않음

    • 명시적 형변환 : 변환될 자료형을 개발자가 직접 지정함
    • 암시적 형변환 : 변수를 할당할 당시 자료형을 지정하지 않아도 자동으로 형 변환 됨

     

     

    배열

    // 배열에 값 지정 
    var intArr = arrayOf(1,2,3,4,5)
    // 비어있는 배열을 선언하고 싶으면
    var nullArr = arrayOfNulls<Int>(5)
    
    // 자바와 마찬가지로 intArr[2] = 8 
    // println(intArr[4])
    // 특정 배열 위치에 값을 할당, 쓰기가 가능

     

    타입 추론

    val StringValue:String = "test"
    val StringValue = "test"

    함수

    fun main() {    
        println(add(5,6,7))
    // 18 출력
    }
    
    // 뒤에 return 타입 지정
    // void 와 같이 리턴 타입 없으면 return 타입 안적어 줘도 됨
    fun add(a: Int, b: Int, c: Int): Int {
        return a + b + c
    }

    단일 표현식 함수 (반환형의 타입 추론 가능 함)

    fun main() {    
        println(add(5,6,7))
    // 18 출력
    }
    fun add(a: Int, b: Int, c: Int) = a + b + c

    조건문 (다른 언어들과 같음)

    • if 문
    fun main() {
        var a = 7
        if (a > 10) {
        	println("a가 10보다 크다")    
        } else {
            println("a가 10보다 작다") 
        }
    }
    • when 문 (switch문 개념)
    fun main() {
        doWhen(1)
        doWhen(12L)
        doWhen(3.233)
    }
    fun doWhen(a: Any) {
        when(a) {
            1 -> println("정수 1입니다")
            is Long -> println("Long 타입입닌다")
            !is String -> println("String 타입이 아닙니다")
        }
    }

     

    반복문

    • while 문
    fun main() {
     	var a = 0
        while(a < 5) {
            println(a)
            a++
        }
    }
    
    0
    1
    2
    3
    4
    • for 문
    fun main() {
        for(i in 0..4) { // 0에서 4까지
            println(i)
        }
    }
    0
    1
    2
    3
    4
    
    // 증가 값을 1이 아닌 다른값으로 하고 싶다면
    //step 사용
    fun main() {
    
        for(i in 0..9 step 3) {
            println(i)
    
        }
    }
    0
    3
    6
    9
    
    // 감소 연산자 사용
    fun main() {
        for(i in 0..9 step 3) { // 0에서 9까지
            println(i)
        }
    }
    
    4
    3
    2
    1
    0
    
    //char 형으로도 반복문 사용가능
    fun main() {
        for(i in 'a'..'e') {
            println(i)
        }
    }
    a
    b
    c
    d
    e

     

     

    반응형

    'kotlin' 카테고리의 다른 글

    kotlin 문법 정리 (2)  (0) 2023.07.08

    댓글

Designed by Tistory.