Loop
// for
for (city in cities) {
println(city)
}
// while
var index = 0
while (index < cities.size) {
println("indx $index is ${cities[index}")
inex += 1
}
for문과 while문을 사용한 반복문도 동일하게 존재하며, value binding도 당연히 사용할 수 있다.
//close ended range
0..10
//open ended range
0..<10
for (index in 0..10) {
println(index)
}
0
1
2
3
4
5
6
7
8
9
10
for문에 자주 사용하는 범위 연산자는 swift의 것과 많이 닮아있는데, 기본적으로 전위를 포함하고, 후위를 닫아주는 형태이다.
open ended range는 최근 추가된 연산자로, 기존의 rangeUntil을 대체한다.
Function
fun main() {
}
지금까지 줄곧 사용하고 있었지만 위 표현식이 kotlin의 함수 표현식이다.
fun sayHello() {
println("Hello!")
}
다른 함수를 호출할 수 있고
fun sayHello2Someone(name: String) {
println("Hello $name!")
}
파라미터를 선언해 호출 시 argument를 전달할 수 있다.
fun add(): Int {
return 20 + 30
}
반환 값에 대한 타입을 지정할 수도 있고
fun addCompact(): Int = 20 + 30
간단한 함수라면 축약형도 지원한다.
fun tempdivide(x: Int, y: Int): Int = x / y
모든 걸 적용 하면 이런 형태...
해석하면 tempdivide 함수는 정수 형태의 x와 y를 인자 받아 둘을 나눠 정수 타입의 몫을 반환하는 기능을 한다.
println(tempdivide(100, 50))
println(tempdivide(y=700, x=300))
아규먼트 전달은 기본적으로 파라미터의 순서에 맞게 전달해야 하지만,
named argument를 지원하기 때문에 두 번째 줄과 같이 명시적으로 전달한다면 순서는 지키지 않아도 된다.
private fun tempFunc() {
// empty function with empty line!
}
fun tempFunc2(): Int {
return 0
}
혹여 빈 함수를 만든다면 kotlin에는 pass가 존재하지 않으니 일반적으로 빈 공백이나 주석을 두면 되고,
만약 반환 형태가 주어져 있다면 일단은 뭐든 반환은 시켜야 에러가 발생하지 않는다.
또한 모든 함수는 public 취급을 받으므로, 제한적으로 사용하고자 한다면 private 키워드를 붙여 사용할 수 있다.
'학습 노트 > Kotlin (2024)' 카테고리의 다른 글
005. nullSafety (0) | 2024.05.05 |
---|---|
003. 조건문과 array 그리고 list (0) | 2024.05.05 |
002. 기본 연산자들 (0) | 2024.05.04 |
001. 출력과 기본 자료형 (0) | 2024.05.04 |