[英]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.