Rebol 编程/语言特性/对象
外观
对象是在 Rebol 中管理和访问数据的非常常见的方式。事实上,Rebol 系统的大部分都是用对象构建的。SYSTEM 对象可以被认为是 Rebol 的脊柱,所有非核心函数和数据都驻留在那里。这是你可以找到所有 VID、各种网络协议和所有中间函数的地方。
对象是用 MAKE 函数创建的。
示例
>> shopping-basket: make object! [fruits: 5 vegetables: 3] >>
请注意,控制台上没有返回任何内容。对象可以保存所有类型的数据,甚至可以保存其他对象。
一个更大的示例,就像你在程序代码中通常编写的那样
shopping-basket: make object! [ fruits: 5 vegetables: 3 dairy-products: 7 ]
如果你想查看一个对象,你可能已经注意到,在其中键入名称不会返回任何内容。
>> shopping-basket >>
你可以使用不同的方法来查看对象数据。
>> probe shopping-basket make object! [ fruits: 5 vegetables: 3 ]
可以使用以下方法返回更好的概述
>> ? shopping-basket SHOPPING-BASKET is an object of value: fruits integer! 5 vegetables integer! 3 total integer! 8
或者
>> print dump-obj shopping-basket fruits integer! 5 vegetables integer! 3 total integer! 8
这些函数不能在程序中用于从对象中获取值,因为它们只在控制台上打印信息。它们不产生返回值。
一种方法是使用路径表示法。
>> shopping-basket/fruits == 5
有多种方法可以访问对象数据,无论是进行操作还是查看。
对象可以使用 SELF 来引用自身或自身内的其他变量和函数。
>> shopping-basket: make object! [fruits: 5 vegetables: 3 total: self/fruits + self/vegetables] >> shopping-basket/total == 8
请注意,上面的示例中 SELF 的使用不是必需的。