Kotlin에서 곱셈, 나누기 또는 커스텀 반복 함수를 갖는 반복 단계를 어떻게 작성하나요? 대신 while 루프를 사용할 수 있다는 것을 알고 있지만 for 루프는 다른 언어보다 범위가 더 제한적으로 보입니다. 이것은 의도 된 것입니까?
대부분의 다른 언어로 제공되는 항목 :
for(let i = 1; i <= 10; i *= 2) // [JavaScript]
for i := 1; i <= 10; i*=2 // [Golang]
내가 Kotlin에서하고 싶은 것 (또는 그와 가까운 것) :
for(i in 1..10 step 2 * i) // [Kotlin]
for 루프 본문 자체에서 반복자를 참조 할 수 있다면 쉬울 것입니다. 그러나 위의 i
경우 반복 단계에서 참조 할 수 없기 때문에 '미해결 참조'오류가 발생 합니다.
예, Kotlin 디자이너가 C 스타일 for
루프 를 지원하지 않기로 결정한 것은 유감 이지만 확장 기능으로 몇 가지 트릭을 수행 할 수 있습니다.
중위 함수 선언
// for increasing rangeTo (..)
infix fun IntRange.step(next: (Int) -> Int) =
generateSequence(first, next).takeWhile { if (first < last) it <= last else it >= last }
// for decreasing downTo
infix fun IntProgression.step(next: (Int) -> Int) = (first..last).step(next)
다음과 같이 사용하십시오.
for (i in 1..10 step { it * 2 }) {
println(i)
}
산출
1
2
4
8
과
for (i in 16 downTo 1 step { it / 2 }) {
println(i)
}
산출
16
8
4
2
1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다