簡體   English   中英

smalltalk 中的協程是如何實現的?

[英]How are coroutines implemented in smalltalk?

我可以在 smalltalk 中實現協程嗎?

如果你的答案是否定的:為什么不呢?

或者如果是的話:你能給我舉個例子嗎?

大多數 Smalltalk 在 thisContext object 上都有堆棧操作方法。 你可以使用這些來實現協程,盡管在這個級別處理堆棧可能會有點乏味。

GNU Smalltalk 和最新版本的 Squeak 和 Pharo 還提供了一個生成器 class,它可以輕松編寫生成器(即產生多個值的協程類型):

"This generator yield an infinite sequence of 1"
generator := Generator on: [ :gen | [ gen yield: 1 ] repeat ].

(1 to: 100) do: [:i | Transcript show: (generator next printString); cr]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM