현재 Transcrypt를 사용하여 Python 코드에서 Javascript 코드를 생성합니다. 이런 식으로 내가 좋아하는 파이썬에서 발전기를 구현할 수있어 :Scala.js의 자바 스크립트 생성자
같은 자바 스크립트로 컴파일됩니다def color():
colors = ["red", "blue", "yellow"]
i = -1
while True:
i += 1
if i >= colors.length:
i = 0
reset = yield colors[i]
if reset:
i = -1
gen = color()
console.log(next(gen)) # red
console.log(gen.js_next(True).value) # red
console.log(next(gen)) # blue
console.log(next(gen)) # yellow
console.log(next(gen)) # red
:
var color = function*() {
var colors = list (['red', 'blue', 'yellow']);
var i = -(1);
while (true) {
i++;
if (i >= colors.length) {
var i = 0;
}
var reset = yield colors [i];
if (reset) {
var i = -(1);
}
}
};
var gen = color();
console.log (py_next (gen));
console.log (gen.next (true).value);
console.log (py_next (gen));
console.log (py_next (gen));
console.log (py_next (gen));
그러나 나는 또한 스칼라 지식 (그리고 스칼라 - 응용 프로그램이 있기 때문에 어떤 브라우저에서 구현하고 싶습니다.) Scala.js를 찾고 있습니다. 그러나 내가 아는 한이 생성자 구조는 스칼라에서는 불가능하며 대응하는 yield
키워드는 다른 방식으로 사용됩니다.
Scala.js에서 생성자 구문을 사용할 수 있습니까? 아니면 내가 원한다면 Python과 Transcrypt를 사용해야합니까?
내 머리 꼭대기에서 당신은 발전기 코드를 번역하기 위해 https://github.com/scala/async를보실 수 있습니다 –
다음과 같이''color''를 정의 할 수 있습니다 :''color = itertools.cycle ([ "red", "blue"])''. –
값을 보내는 것과 같이 생성기의 모든 가능성을 사용하고 싶습니다. 예제는 너무 간단합니다. –