1. 코틀린 메인 함수
fun main() {
println("Hello World!")
}
fun 키워드를 사용하고, main 함수명을 사용 합니다. 코틀린에서는 세미클론이 생략 가능 합니다.
2. 함수 반환값
fun helloWorld2() : Unit {
println("Hello World!")
}
// Unit일 경우 반환값 생랼 가능
fun helloWorld2() {
println("Hello World!")
}
함수 끝의 :(클론) 과 함께 반환값을 써줍니다. Unit은 java에서 void 와 같이 반환값이 없다는 뜻이고, Unit는 생략 가능 합니다.
3. 함수의 파라미터
fun helloWorld2(a : Int, b : Int) {
println("Hello World!")
}
파라미터의 자료형은 변수명 뒤의 클론(:)과 함께 위치 합니다.
4. val vs var
val a : Int = 10
a = 100 //Error
var b : Int = 20
b = 100
val은 value의 약자로, '상수'를 의미 합니다. var은 variation의 약자로 '변수'를 의미 합니다.
5. String 템플릿
fun main() {
val name : String = "abc"
val name2 = "abc" // String 생략 가능
println("test : $name")
println("test2 : ${name2}")
var age = "20"
println("test3 : ${name + age}")
println("test4 : ${1 == 0}")
}
출력 결과
test : abc
test2 : abc
test3 : abc20
test4 : false
'$'를 String 타입 앞의 붙여 호출 할 수 있습니다. 또한 ${} 달러 기호와 중괄호를 사용하여 호출 할 수도 있습니다.
6. 조건식
fun main() {
println("maxBy : ${maxBy(2, 1)}" )
println("maxBy2 : ${maxBy2(2, 1)}" )
}
fun maxBy(a : Int, b : Int) : Int{
if(a > b) {
return a
} else {
return b
}
}
fun maxBy2(a : Int, b : Int) = if(a > b) a else b
출력 결과
maxBy : 2
maxBy2 : 2
코틀린에서는 삼항 연사자를 사용 할수 없습니다. 대신에 maxBy2 함수 처럼 반환값을 '=' 연산자를 사용하여 if문을 한줄로 표현 할 수 있습니다.
7. switch문 대신 when문
fun main() {
checkNum(0)
checkNum(2)
checkNum(5)
}
fun checkNum(score : Int) {
when(score) {
0 -> println("this is 0")
1 -> println("this is 1")
2, 3 -> println("this is 2 or 3")
else -> println("I don't know")
}
}
출력 결과
this is 0
this is 2 or 3
I don't know
switch문 대신에 when절을 사용 할수 있습니다. 클론(:) 대신 화살표(->)를 사용 합니다. 이 경우에는 else 구문은 생략 가능 합니다.
8. when을 반환 할 경우, else 를 꼭 써줘야 함(Expression 이기 때문)
fun main() {
checkNum(0)
}
fun checkNum(score : Int) {
var b : Int = when(score) {
1 -> 1
2 -> 2
else -> 3
}
println("b : ${b}")
}
출력 결과
b : 3
when 절을 이용해서 반환값으로 사용 할 경우에는 꼭 else 구문을 넣어줘야 합니다.
9. when절
fun main() {
checkNum(10)
}
fun checkNum(score : Int) {
when(score) {
in 90..100 -> println("you are genius")
in 10..80 -> println("not bad")
else -> println("okay")
}
}
출력 결과
not bad
when 절에서 in 키워드 와 함께 (..)을 사용해서 90 이상 100 이하(in 90..100) 을 표현 합니다.
10. Expression vs Statement
// b의 연산 값을 대입해 주므로 Expression
var b : Int = when(score) {
1 -> 1
2 -> 2
else -> 3
}
// Statement
when(score) {
in 90..100 -> println("you are genius")
in 10..80 -> println("not bad")
else -> println("okay")
}
연산 후 반환값을 만들면 Expression 이고, 만들지 않으면 Statement 입니다. 코틀린의 모든 함수는 Unit를 리턴 하기 때문에, 모든 함수는 Expression 입니다.
'코틀린' 카테고리의 다른 글
코틀린 6편 (lateinit) (0) | 2020.11.13 |
---|---|
코틀린 5편 (data class, object, companion object) (0) | 2020.11.11 |
코틀린 4편 (람다 Lamda) (0) | 2020.11.11 |
코틀린 3편 (클래스 생성자와 상속) (0) | 2020.11.10 |
코틀린 2편 (0) | 2020.11.10 |