Rebol 3中的所有端口操作都是异步的.我可以找到进行同步通信的唯一方法是调用wait.
但是在这种情况下调用wait的问题是它将检查所有开放端口的事件(即使它们不在传递给等待的端口块中).然后他们调用响应事件处理程序,但可以在其中一个事件处理程序中完成读/写操作.这可能导致递归调用"等待".
我该如何解决这个问题?
我刚刚在 Rebol 中遇到了这个语法来构造一些值:
>> #[email! "me@host.com"]
== me@host.com
Run Code Online (Sandbox Code Playgroud)
这似乎相当于
>> to email! "me@host.com"
== me@host.com
Run Code Online (Sandbox Code Playgroud)
和这个
>> #[string! "hello"]
== "hello"
Run Code Online (Sandbox Code Playgroud)
虽然出现这些错误:
>> #[integer! 1]
** Syntax Error: Invalid construct -- #[
** Near: (line 1) #[integer! 1]
>> #[decimal! 1]
** Syntax Error: Invalid construct -- #[
** Near: (line 1) #[decimal! 1]
>> #[string! 1]
== [string! 1]
Run Code Online (Sandbox Code Playgroud)
我想知道这是做什么用的?它带来什么好处?