Programming/Android

코틀린 기초 문법 정리

fishersheep 2022. 5. 11. 14:20
반응형

코틀린 변수 및 자료형 - val, var

    val num:Int = 1 //val은 값 변경불가, 읽기전용
    var tempNum:Int =24 //var은 값 변경가능
    
    //num+=1    val로 선언했기에 값 변경불가
    tempNum+=1

    val bNum =1000000   //정수, 값을 보고 자료형 추론
    val bNum2 = 1000_000    //가독성을 위해 사용가능, bNum과 bNum2는 같은 값을 가짐
    val dNum = 3.14 	//실수
    val check = true    //논리
    
    println(num)    //1 출력
    println(tempNum)    //25출력

    println(bNum)   //1000000 출력
    println(bNum2)   //1000000 출력
    println(dNum)   //3.14 출력
    println(check)  //true 출력

 

배열 및 리스트 - Array, List, MutableList 

var arr:Array<Int> = arrayOf(1,2,3) //Int 배열선언, 배열은 연속된 메모리 공간 사용
    print(arr[0])   //배열 값 출력
    print(arr[1])
    print(arr[2])
    
    val tempList:List<Int> = listOf(1,2,3)  //Int list 선언, 리스트는 불연속적인 메모리 공간 사용, list는 불변형
    
    var temp2 = mutableListOf<Int>()    //Int mutablelist선언, mutablelist는 가변형
    temp2.add(1)    //temp2에 1을 add
    temp2.add(2)

 

NULL - ?

    var t1:String? =null
    //var t2:String = null  null값 허용을 위해서는 ?를 추가해야한다

 

함수 - func

    fun func(msg:Int) = if(msg!=0) println("Hello") else println("World")   //func 함수선언, 매개변수로 Int를 받고 
    //Int값이 0이 아니라면 Hello를 출력하고 0이라면 World를 출력

    fun func2(a: Int, b:Int):Int    //func2함수 선언, 매개변수로 Int자료형 a,b를 받고 a와 b의 합을 반환
    {
        return a+b
    }
    
    //함수를 선언할때 반환형이 없을 경우 Unit를 사용

    func(1) //Hello 출력
    func(0) //World 출력

    var fNum2 = func2(20,30)

    println(fNum2)  //50 출력

 

줄바꿈

    print('\n') //줄바꿈
    println()   //줄바꿈

 

반복문 - for

        for(i in 1 until 100)   //1부터 99까지 출력하는 반복문
           print("$i ")
        for(i in 'a' .. 'z')    //a부터 z까지 출력하는 반복문
           print("$i ")
        for(i in 1..100 step 3) //1부터 100까지 3씩 증가하는 반복문
           print("$i ")

 

제어문 - When

    var wNum = 1

    when(wNum)  //제어문 when , 다른 언어들의 switch문과 동일하며, wNum값에 따라 결과를 출력
    {
        1 -> print("wNum은 1")
        2 -> print("wNum은 2")
    }

 

클래스 - Class, Init, open

class Car(var carName : String) //Car 클래스 선언
    {

        init {
            println("car선언")    //init은 클래스의 인스턴스가 만들어질때 호출되는 함수
        }

        fun nameFun()
        {
            println("Car: $carName")
        }
    }

    val tempCar = Car("abc")    //Car 클래스의 인스턴스 생성
    tempCar.nameFun()   //nameFun 함수 호출, Car: abc 출력

    //클래스 상속을 위해서는 부모클래스의 선언을할때 open 을 추가해야한다. ex) open class Car(){}

 

lateinit

lateinit var tempStr: String    //lateinit를 사용하면 초기화하지않고 변수만 선언가능
반응형