我正在尝试自学 Smalltalk。一个教程有这个while循环的例子:
|i|
i:=5.
[i >0] whileTrue:[
Transcript show: ((i*2) asString) ; cr.
i:=i-1.
].
据我了解,whileTrue 是发送到 BlockClosure 的消息,告诉接收方 BlockClosure 运行作为参数给出的 BlockClosure,只要接收方为真。
BlockClosure 响应的 whileTrue 消息是如何在 Smalltalk 中没有 while 循环结构的情况下实现的?或者它是用运行时编写的任何语言实现的?