跳轉到內容

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 的使用不是必需的。

華夏公益教科書