나는 the documentation for the Ranges을 보았고 나는 역방향 범위에 대한 언급을 보지 못했다.Kotlin에서 뒤로 계산할 수있는 범위를 만들 수 있습니까?
for (n in 100..1) {
println(n)
}
그리고 결과를 얻을 :
100
99
98
...
나는 the documentation for the Ranges을 보았고 나는 역방향 범위에 대한 언급을 보지 못했다.Kotlin에서 뒤로 계산할 수있는 범위를 만들 수 있습니까?
for (n in 100..1) {
println(n)
}
그리고 결과를 얻을 :
100
99
98
...
사용 downTo에게 같이 : 다른 사람에 의해 지적
for (n in 100 downTo 1) {
//
}
당신은 당신이에 연결 정확한 페이지를 보면, 그하고자했다 reversed
기능에 대한 제안 거기를
for (n in (1..100).reversed())
을 실행 시키지만 아직 구현되지 않은 것처럼 보입니다.
..
연산자는 항상 카운트 업합니다.
반전 된 범위는 단항 연산자 인 마이너스 -(1..100)
을 사용하여 지원됩니다.
해당 범위에서 메소드를 호출하려면 (-(1..100)).foreach { println(it) }
과 같이 괄호로 묶어야합니다.
rangeTo() 함수를 좀 더 똑똑하게 만들고 자동으로 처리 할 수 있습니까? 나에게 음수 범위를 지정하면 -1에서 -100까지 계산됩니다. – jjnguy
Kotlin의 범위와 관련된 다음 문제를 살펴본 후 제안 내용을 자세히 설명하는 새로운 문제를 제출하는 것이 좋습니다. [KT-861] (http://youtrack.jetbrains.com/issue/KT-861) , [KT-1045] (http://youtrack.jetbrains.com/issue/KT-1045), [KT-1076] (http://youtrack.jetbrains.com/issue/KT-1076) –
, 정답은
for (n in 100 downTo 1) {
println(n)
}
입니다 왜 코 틀린 팀은 100..1
대 100 downTo 1
을 선택 했습니까?
리터럴 대신 변수를 사용하려고하면 100..1
구문이 잘못 될 것이라고 생각합니다. 우리는 다음
for (n in b..a)
우리는 거꾸로 계산하려고했을 수도 있지만 b
이 a
보다 작 으면 우리 프로그램이 실제로 위쪽으로 계산됩니다! 그것은 버그의 원인이 될 것입니다.
왜 그렇지 않은가? "for (n in 100..1)"? 첫 번째 숫자가 더 크면 범위가 거꾸로 계산된다는 합의가 될 수 없습니까? – x2bool