Kotlin

1 minute read

1. 변수선언

kotlin에서는 ‘;’를 사용하지 않으며, 일반 변수를 선언할 땐 var 상수를 선언할 땐 val를 쓴다. 변수명 우측에 ‘:’을 사용해서 타입을 지정할 수도 있다.

var kotlin:Int = 1108 // 일반 변수 선언 
val KOTLIN:Int = 731 // 상수 선언 (read only)

2. null

kotlin에서는 기본적으로 NULL값을 가질 수 없다. NULL을 사용하기 위해선 아래와 같이 ‘?’를 활용해야 한다.

var notNullable:Int = 1108
var nullable:Int? = null

또한, 안전한 NULL처리를 위해서 ?. 연산자를 사용한다.

val name = "igni"
println(name?.toUpperCase())

’!!’도 존재하는데, 강제로 null이 아님을 선언할 때 사용한다.

val companyName:String? = null
val notNullName:String = companyName!!

3. Method

Kotlin에서는 Method를 아래와 같이 선언한다

fun 함수명 (변수명: 변수타입): 리턴타입 { return 값 }

위 컨벤션을 토대로 예를 들어보면 아래와 같으며

fun testFun(i:Int, g:Int): Int {
    return i+g
}

조금 더 줄여서 아래와 같이 표현할 수도 있다.

fun testFun(i:Int, g:Int) = i + g

간단한 조건식을 포함한 메서드도 아래와 같이 간단하게 표현할 수 있다.

// 간단한 조건식을 포함한 함수
fun isHello(s: String): Boolean {
	if(s == "hello"){
	    return true
	 } else {
	    return false
	 }
}

// 조건식 메소드 간략 표현
fun isHello(s: String) = if(s == "hello") true else false

// 더 간단히 줄이면?
fun isHello(s: String) = s == "hello"

반환형이 없는 함수는 Unit이나 공백으로 두면 된다.

// Unit 사용
fun returnVoid(): Unit {}
// 그냥 공백 
fun returnVoid() {}

4. if, when

if문은 다른 언어에서 쓰는 것과 똑같다.

val isFlag:Boolean = true
if(isFlag) {
    println("is flag is true")
}else {
    println("is flag is false")
}

반환형 if 문법이 존재하는데, 아래와 같이 쓴다. 제법 유용하게 쓰일것 같다.

var result : String = if(isFlag){
 "참"
}else{
 "거짓"
}

java에서 쓰는 switch case문법이 kotlin에서는 when으로 쓰인다.

val level:Int = 10

when(level) {
    2 -> println("level 2")
    4 -> println("level 4")
    6 -> println("level 6")
    8 -> println("level 8)
    10 -> println("level 10")
    else -> println(" ????? ")
}

5. 반복문

별거 없다. 리스트를 선언하고, 아래와 같이 for loop 돌릴 수 있다.

var stringList = ArrayList<String> = ArrayList<>()
for(str in stringList) {
    println(str)
}

foreach는 아래와 같다.

for(i:int in array){
    println(i)
}

iterator를 사용한 loop는 제법 편리하게 제공한다.

//1에서부터 10까지 순회하면서 출력
for(i in 1..10){
	println(i)
}

//역순으로 10에서부터 1까지 출력하기
for(i in 10 downTo 1){
	println(i)
}

//일정 간격으로 동작시키기
for(i in 1..10 step 2){
	println(i)
}

//끝 번호를 제외하고 출력하기
for(i in 1 until 10){
	println(i)
}

Leave a comment