如何在actionscript中生成python/ruby/javascript样式的生成器?

2024-10-04 01:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在actionscript中使用协程来实现一个状态机。在

我希望能做如下的事情

function stateMachine():void
{
   sendBytes(0xFFFF);
   var receiveBytes:ByteArray = yield()
   sendBytes(receiveBytes);
}

stateMachine.send( Socket.read() ) 

就像这个blog entry


Tags: sendreadvarfunctionsocket事情协程状态机
2条回答

好吧,这个怎么样?在

function stateMachine(socket:Socket, target:YourReceiverClass):void
{
   target.sendBytes(0xFFFF);
   var receiveByte:int = socket.readByte();
   target.sendBytes(receiveByte);
}

stateMachine( mySocket )

据我所知,Actionscript没有协程、continuations或任何可以提供相关行为的东西(调用函数时不推栈帧)。您可以使用静态变量和switch来伪造它,但这就违背了为状态机使用协同程序的目的。另外,如果没有尾部调用(据我所知,仍然只有一个proposal for ECMASCRIPT),伪造的协程不会像真正的协程那样使用恒定的堆栈空间。在

对于示例代码,协程通常需要循环才能有用。在

相关问题 更多 >