이 우상 : function*(){ ... }
이 페이지에서 https://github.com/jmar777/suspend이 무엇인지 확실하지 않습니다.nodej에서 "function *()"은 무엇을 의미합니까?
아무도 설명 할 수 있습니까? 감사합니다.
이 우상 : function*(){ ... }
이 페이지에서 https://github.com/jmar777/suspend이 무엇인지 확실하지 않습니다.nodej에서 "function *()"은 무엇을 의미합니까?
아무도 설명 할 수 있습니까? 감사합니다.
이것은 함수가 생성 함수임을 의미합니다. http://wiki.ecmascript.org/doku.php?id=harmony:generators#syntax
* 토큰이있는 함수를 생성기 함수라고합니다.
일반 함수는 결과를 실행하고 반환합니다. 그러나 생성자는 값을 내고 다시 호출 할 때까지 기다립니다. 다음 함수는 실행을 재개합니다.
일반적으로 생성자 함수는 반복됩니다. 그들은 값을 값으로 가져오고 다음 함수 호출에서 실행을 다시 시작하기 위해 대기하므로 무한 값 생성기에 유용합니다.
그들은 메모리 효율도 있습니다. 예를 들어, 10000000 숫자를 생성하고 싶다고 가정 해 봅시다. 배열에 저장하면 컴퓨터의 메모리가 소모 될 수 있습니다. 그러나 우리가 발전기를 사용한다면 하나의 숫자와 항복 값을 생성 할 수 있으며, 다시 호출되면 실행이 재개되고 다음 숫자가 생성 될 수 있습니다.
우리는 예, here 볼 수,
function* fibonacci() {
let [prev, curr] = [0, 1];
for (;;) { // Infinite looping
[prev, curr] = [curr, prev + curr];
yield curr;
}
}
을 내가 말했듯이 발전기 기능이 실제로 무한 루프를 가지고 참조, 발전기이
for (n of fibonacci()) {
// truncate the sequence at 1000
if (n > 1000)
break;
print(n);
}
처럼 반복된다. yield curr
이 실행되면 n of fibonacci()
에 n
으로 값이 반환됩니다. 이것은 반복에서 사용되며 생성자가 다시 호출 될 때 실행을 다시 시작하고 (변수에서도 데이터를 유지함) 다음 요소를 생성합니다.
http://wiki.ecmascript.org/doku.php?id=harmony:generators –
이것은 생성 함수 (EcmaScript)이며 질문은 이미 답변되었습니다 [여기] (http://stackoverflow.com/questions)/9620586/function-in-javascript). –