본문 바로가기
카테고리 없음

Kotlin 기본 문법 정리

by 잉ㅈI 2024. 3. 27.

요즘 코프링에 관심이 좀 생겼는데 마침 모바일프로그래밍 수업도 듣게되었담 ^!^

그래서 이참에 코틀린 문법을 쬠 정리 해보려구 한다 :)

계속 추가해서 적을 예정임

 

1. 변수 선언

  • Var
    • 읽기, 쓰기 가능
  • Val
    • 읽기만 가능 (== 변경이 불가능!하다)

Val(Var) 변수명: 타입

아래는 코드예시이다

Var i: Int = 10 
Val j: Int = 10

i = 20
j = 20 //(x)에러

 

*Tip: 혹여나 나중에 변수를 바꾸면 안될 경우에는 Val 로 미리 선언하여 오류를 통해 방지할 수 이따!

 

2. ? null 

기본적으로 코틀린은 Null을 허용하지않는다! 

(자바를 주언어로 하는 나에겐... 신세계....!!! ㄱ- 맨날 NPE땜에 스트레쓰받는... ㅋㅅㅋ)

만약 Null을 허용하고싶다면 타입 옆에 ?를 붙이자!

Var 변수명: 타입?

Var i: Int? = 10

 i는 Null 허용해줌!

 

3.타입추론

코틀린은 기본적으로 들어오는 값을 보고 타입을 알아서 지정해준다!!! 개꿀

 

+ 데이터타입 알고싶다면! 변수::class로 출력가능하다

val s = “ABC”
val i = 10

println("s = " + s::class) 
//s = class java.lang.String (Kotlin reflection is not available)
println("i = " + i::class) 
//i = int (Kotlin reflection is not available)

 

 

 

 

4.if else 조건문

if(조건문) ...else 는 똑같은데,

+)println시 해당 값 넣으려면 $변수로 가능하다!

 

val priceA: Int = 100
val priceB: Int = 200
if(priceA >= priceB) println("priceA = $priceA")
else println("priceB = $priceB")

=> priceB가 더 크기때문에 출력: priceB = 200 

 

4-1. arrayOf

이왕 배운 김에 배열도 잠깐 건드려본다

arrayOf의 대박인점... 은 타입이 달라도 전부 넣기 가능하다...개충격...!!!!!!!

=> val arr = arrayOf(1, "string", true)로 가능하단 얘기 킁..

 

그래도 일단 Int로 해보쟈

val price: Int = 250
if(price in arrayOf(100,200,500)) println("contain")
else println("not Contained")

 

아래처럼 미리 선언하고 조건문안에 넣어두 된당

val arr = arrayOf(100,200,500)
if(price in arr) println("contain")

=> not Contained가 출력되겠지용?

5.when 조건문

java의 switch문과 유사하당

코틀린에서는 -> 화살표를 많이 쓰기두!

 

val price: Int = 200
when(price){
100 -> println("1.price = $price")
200 -> println("2.price = $price")
500 -> println("3.price = $price")
else -> println("4. Not")
} //2.price = 200

 

 

아래에서 특이한 점은 " .. " 인데, 100<=price<=199 라고 생각하면 된다!

val price: Int = 250
when(price){
in 100..199 -> println("1. 100 ~ 199")
in 200..299 -> println("2. 200 ~ 299")
in 300..399 -> println("3. 300 ~ 399")
else -> println("4. Not")
} //2. 200 ~ 299​

 

 

6.functuon

형태는 이러하다 

 

fun 함수명(매개변수: 타입): 반환타입{

//본문

return 반환값
}

 

반환타입 생략가능! return 생략 후 = 반환값 으로 가능!

fun main(args: Array<String>) {
    val price1 = 100
    val price2 = 200
    val price3 = sumPrice(price1, price2)
    println("price3 = $price3")
}

fun sumPrice(price1: Int, price2: Int) = price1 + price2