问题标签 [rebol3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
object - 交错块,或从两个块(字段名称和值)中创建对象
而不是通过编写来创建对象:
我想写一些类似...
...并得到相同的结果。理想的解决方案还允许:
很容易写 a something-or-another
,但这是否适合已经“装在盒子里”的东西?
tcp - 如何获取连接到基于 Rebol3 的服务器的客户端的远程 IP 地址?
我正在使用这些基本的 TCP 测试脚本并想知道:“如何获取连接到服务器的客户端的 IP 地址?”
有任何想法吗?我试图在服务器端探测客户端子端口,但它没有显示远程 IP。
有人可以给我关于收集这些信息的提示吗?我知道它在 Rebol2 中是如何工作的,但我不熟悉 Rebol3 端口模型。
scope - 错误“单词未绑定到上下文”是什么意思?
在 Rebol 3 中尝试使用单词时,我遇到了以下错误。
由于以下结果,这似乎很棘手:
我想知道当一个单词看起来与上面相同时,它是如何不能绑定到上下文的......
rebol - 如何在 Rebol 3 中获得单选按钮选择?
如何获取用户在单选按钮组中选择的值?这是一个简单的代码,我应该添加什么才能检索用户选择?我在文档中找不到它。
constructor - TO 和 MAKE 的目的有什么区别,它们在哪里记录?
我觉得我将 MAKE 理解为数据类型的构造函数。它需要两个参数……第一个是目标数据类型,第二个是“规范”。
在对象的情况下,很明显可以使用 Rebol 数据块作为“规范”来获取对象类型的值!
我知道,如果您在创建块时传递一个整数,它将预先分配足够的底层内存来保存该长度的块,尽管它是空的:
这有点道理。如果您传入一个字符串,那么您会将字符串解析为 Rebol 标记...
并非所有类型都被接受,我再说一次到目前为止......太好了。
相比之下,TO 操作的定义非常相似,只是它用于“转换”而不是“构造”。它还将目标类型作为第一个参数,然后是“规范”。它对价值观的作用不同
这似乎是合理的。如果它收到一个非系列值,它会将其包装在一个块中。如果你尝试任何块!价值与它,我想它会给你一个障碍!内部具有相同值的系列:
所以我希望一个字符串被包裹在一个块中,但它和 MAKE 做的一样:
为什么 TO 与 MAKE 如此多余,它们的区别背后的逻辑是什么?将整数传递给阻塞!获取块内的数字(而不是具有特殊的构造模式),日期进入块!在块中制作日期而不是像 MAKE 那样出错。那么为什么不想要一个阻止!将字符串放入块中?
另外:除了阅读解释器的 C 源代码之外,MAKE 和 TO 针对每种目标类型接受的规范的综合列表在哪里?
event-handling - 我应该使用事件处理程序或演员来为游戏添加键盘控件吗
在 Rebol3 Saphir 中,我正在编写一个游戏,我一直在研究事件处理程序功能以及演员,我想知道使用事件处理程序来为游戏进行键盘控制是否是一个更好的主意或将参与者添加到 GUI 元素之一中。
如果我使用演员,在什么级别?我目前正在image!
为屏幕使用一种类型。我可以将演员添加到 root( layout
) 面,这样即使我在 GUI 上单击(给予焦点)按钮,焦点也会离开图像并且不会使用键盘控制。
curl - 是否可以使用 Rebol 3 cURL 绑定调用 SOAP Web 服务?
我有一些使用shell 接口函数CALL 调用 SOAP Web 服务的 Rebol 2 代码:
Rebol 3 Alpha 中的 CALL 函数似乎还不能做到这一点。
但是是否可以通过Esper Consultancy 的 Rebol 3 cURL 绑定实现等效的行为?那个代码会是什么样子?
object - 使用 locals-gathering FUNCTION 而不是 FUNC 时访问对象成员
Rebol 中用于函数和闭包的低级原语是 FUNC 和 CLOS。如果没有明确告诉 FUNC 或 CLOS 进行本地化,那么分配将不是本地的。
这将输出:
x 是 10,y 是 304
更高级别的例程 FUNCTION 和 CLOSURE 在默认库中编写为 Rebol 代码。他们在正文中扫描 SET-WORD 类别的符号(例如x:
和y:
)。然后它们会自动生成一个增强的函数规范,将它们添加为 /LOCAL:
这将输出:
x 是 10,y 是 20
几乎所有时间都更好,所以这些名字得到更漂亮的名字是件好事。但是,您如何将 FUNCTION 用作对象成员?
这与在对象内的其他语言不同,默认情况下,成员不会被局部变量隐藏。如果某人想foo
对对象中设置的任何单词都像 FUNC 一样行事,但对于不是的单词却像 FUNCTION 一样行事,该怎么办?
我唯一想到的就是传递self
给 FUNCTION 代码的变体,例如:
但是你将不得不写foo: method self [] [...]这是罗嗦的(假设这种方法甚至是合法的)。
是否有任何技巧可以通过 pass inself
或其他一些成语来支持这种愿望?还是每个人都只是使用 FUNC 作为对象成员?
http - 如何仅使用 Rebol3 发送 HTTP POST 请求
仅使用 Rebol3 发送 HTTP POST 请求和获取响应(例如 XML 格式)的最简单方法是什么?
是否有read/custom
在 Rebol2 中使用的等价物,就像在这个问题中所做的那样?
我应该从哪里下载我的 Rebol3 二进制文件?我没有找到很多关于它的文档......