본문 바로가기
spring_boot/kotlin

Kotlin 기초 문법

by 잡다한 개발자 정모씨 2024. 4. 7.

kotlin기본 문법에 대해서 정리한 강좌이다.

 

fun (함수 선언)

fun main() { printf("hello") }

 

 

var, val (변수 선언)

fun main() {
	var a = 1;
	a = 2;
	println(a) //2
}

 

val은 읽기만 가능한 변수

fun main() { 
	var a: Int //선언시 값이 들어가지 않으면 타입 선언 
    a = 1 println(a) //1 
}

 

[변수명]::class (타입 확인 )

fun main() { 
	var a = 1; 
    println(a::class) //int 
}

 

?, ?., ?:, !!

  • ? : null 허용
fun main() {
	val i: Int? = null
}
  • ?. : null이 아니라면 실행
fun main() {
	val i: Int? = "hi"
	println(i?.length) //i가 null이 아니라면 length실행
}
  • ?: :대상이 null이라면 뒤에 명령어를 실행 )Elvis 연산자
fun main() {
	val i: Int? = "hi"
	i ?: println("i is null") //i가 null이면 뒤에 구문을 실행
}
  • !! : null이 아님을 명시

if / when

  • java의 if는 문(statement)
  • kotlin의 if는 식(expression)
fun main() {
	var a: Int = 100
	var b: Int = 200
	var c: Int

	//if(a >= b) {
	//	c = a
	//}else {
	//	c = b
	//}

	c = if(a >= b) {
		a
	}else {
		b
	}
	//kotlin expression으로 주석 처리 해놓은 곳이랑 같은 동작을 함.

	println(c) //200
}
  • when
fun main() {
	val a: Int? = 199
	when(a) => {
		in 100..199 -> println('1')
		in 200..299 -> println('2')
		in 300..399 -> println('3')
		else -> println('4')
	}
}

 

 

class/ dataClass/ enumClass

fun main() {
//kotlin은 java와 다르게 class를 생성할때 new가 생략된다
	val item: Item = Item("Book", 10_000)
	println(Color.RED)
  	println(Color.RED.name)
  	println(Color.RED.strRgb)
  	println(Color.RED.hexaRgb.toString(16))
}

class Item(val name:String, val price: Int)

//data class는 기본적으로 Getter, Setter, Equal, HashCode, ToString, Copy, Component, and 함수들이 자동적으로 생성된다.
//Setter인 경우는 val이면 변경이 불가능하기 때문에 var로 선언해야 적용이 된다.
data class Item2(val name: String, val price: Int)

//열거형 클래스는 class 앞에 enum을 붙여 선언한다.
//각 열거형 상수는 객체이며, 열거형 함수는 쉼표로 구분한다.
enum class Color{
	RED("#f00", 0xFF0000),
	GREEN("#0f0", 0x00FF00),
	BLUE("#00f",0x0000FF)
}

'spring_boot > kotlin' 카테고리의 다른 글

[Kotlin] listOf와 mutableListOf의 차이  (0) 2024.04.22
Java와 Kotlin의 관계와 운용  (1) 2024.04.07