kotlin 문법 정리 (변수 / 함수 / 흐름제어)
2023. 2. 1. 18:10ㆍJAVA Back-End/kotlin
변수
val a: Int = 10
// type없어도 compile 오류 x (타입추론) - 생략가능
val b = "hellio"
// 지연할당 지원. 지연할당 시에는 타입을 선언해줘야 합니다.
val c: Int
c = 10
// val(value) - read only. 재할당 시 컴파일 오류
// var (variable) - 재할당 가능
함수
// 기본적 함수 선언
fun sum(a: Int, b: Int): Int {
return a+b;
}
// 표현식 스타일
fun sum2(a: Int, b: Int): Int = a + b;
// 표현식 & 반환타입 생략
fun sum3(a: Int, b: Int) = a + b;
// 몸통이 있는 함수는 반환 타입을 제거하면 컴파일 오류
fun sum4(a: Int, b: Int) : Int {
return a + b;
}
// 반환타입이 없는 함수는 Unit을 반환한다. - void
fun printSum(a: Int, b:Int){
println("$a + $b = ${a + b}");
}
// 디폴트 파라미터를 줄 수 있음
fun greeting(message: String = "안녕"){
println(message) // 안녕
}
greeting() // 안녕
greeting("hi") // hi
// named argument
fun log(level: String="INFO" , messgae: String){
prinln(" [$level] $message");
}
log(message = "인포 로그")
log(level = "DEBUG",message = "디버그 로그")
log(message = "인포 로그")
log(level = "ERROR",message = "에러 로그")
흐름제어 - 조건절 (when, if ..else)
// if ..else 사용
val job = "developer"
if( job == 'developer' ){
println("개발자")
} else {
println("개발자 아님")
}
// 코틀린은 삼항연산자 없음. if..else가 표현식이라 불필요
val a=1
val b=2
val c= if(b > a) b else a
val age:Int = 10
val str = if( age > 20 ) { "adult"} else { "children" }
// when식 사용
val day = 2;
val res = when(day) {
1 -> "월"
2 -> "화"
3 -> "수"
4 -> "목"
5 -> "금"
else -> "주말"
}
println(res)
enum class Color {
RED, GREEN, BLUE
}
fun getColor() = Color.RED;
fun getNumber() = 2;
when(getColor()){
Color.RED -> print("red")
Color.GREEN -> print("green")
else -> println("blue")
}
흐름제어 - 반복문
// 범위 연산자 ..을 이용해 for loop 돌리기 - for in
for( i in 0 .. 3){
println(i)
}
// until을 사용해 반복함.
for (i in 0 until 3) {
println(i)
}
// step에 들어온 값 만큼 증가시킴
for( i in 0 .. 6 step 2){
println(i)
}
// downTo를 사용해 반복하면서 값을 감소시킬 수 있음
for( i in 3 downTo 1){
println(i)
}
/*
3
2
1
*/
val numbers = arrayOf(1,2,3) // [1,2,3]
for( i in numbers) {
println(i)
}
'JAVA Back-End > kotlin' 카테고리의 다른 글
[kotlin] null-safety / 예외처리 (0) | 2023.02.02 |
---|