JavaScript for-loop를 CoffeeScript로 어떻게 변환 할 수 있습니까?
for (i = 0; i < 10; i++) {
doStuff();
}
이것이 바로 CoffeeScript로 변환하려는 JavaScript 코드입니다.
doStuff() for i in [0 .. 9]
이것은 소개 페이지에 설명되어 있습니다 : http://coffeescript.org/#loops
JP에 의한 편집 / 업데이트 :
정확한 번역은 다음과 같습니다.
doStuff() for i in [0...10]
".."대 "..."에주의해야합니다. 예를 들면 다음과 같습니다.
count = 0
doStuff() for i in [0..count] #still executes once!
그래서 당신은 생각합니다, 문제 없습니다 ... 나는 카운트 1까지 반복 할 것입니다!
count = 0
doStuff() for i in [0..count-1] #executes twice!! '0' and then '-1'
리터럴 번역 :
for (var i = 0; i < someCount; ++i)
doStuff()
이다
for i in [0...someCount]
doStuff()
표시된 답변은 기능적으로 정확하지만 생성 된 코드가 원래 자바 스크립트와 일치하지 않습니다.
올바른 방법 (다음 자바 스크립트에 가장 가까운 읽기)
for (i = 0; i < 10; i++) {
doStuff();
}
되고 doStuff() for i in [0..someCount] by 1
노트 1 작성자 루프 온.
이제이 코드는 여전히 추가 _i
변수를 생성 합니다. 그것으로 살 수 없다면 다음을 사용하십시오.
i=0
while i<=someCount
doStuff()
i++
이전 답변이 작동합니다. 그러나 드롭하면 i
나에게 더 좋습니다.
for [0...10]
doStuff()
또는
doStuff() for [0...10]
다른 솔루션은 별도의 반복자 변수를 추가 i
하면 루프의 내부를 사용하는 예를 들어, doStuff(i)
하지만에서 http://coffeescript.org/v1/#loops :
현재 반복 값이 필요하지 않으면 생략 할 수 있습니다.
browser.closeCurrentTab() for [0...count]
구체적으로,의 번역 for i in [0...10]
인 for (i = j = 0; j < 10; i = ++j)
의 번역 반면 for [0...10]
입니다 for (i = 0; i < 10; i++)
.
2 점 대 3 점 ( [0..9]
vs. [0...10]
)에 대한 다른 의견의 토론에 유의하십시오 .
참고 URL : https://stackoverflow.com/questions/7337351/how-can-i-convert-a-javascript-for-loop-to-coffeescript
'Program Tip' 카테고리의 다른 글
한 분기를 다른 분기처럼 만드는 git 명령 (0) | 2020.11.01 |
---|---|
git 상태 성능을 개선하는 방법 (0) | 2020.11.01 |
이미지를 나타내는 numpy 배열 리샘플링 (0) | 2020.11.01 |
명령 줄을 사용하여 디렉토리와 파일을 삭제하지만 존재하지 않는 경우 오류가 발생하지 않습니다. (0) | 2020.11.01 |
Swift의 지수 연산자 (0) | 2020.11.01 |