2008年3月30日

Reflection

最新版的REBOL有一個新的reflect函數,利用它可以得知某值(通常是物件、模組、或函數)的內部資訊,此函數用來取代舊版REBOL的first、second、third。reflect函數用法如下:

>> reflect system 'words
== […]
>> reflect system 'values
== […]

上面的兩個例子,意思是列出system物件的words,以及列出system物件的values。

除了words和values,reflect還接收哪些單字當作第二個引數?這些單字全都列在system/catalog/reflectors中:

>> system/catalog/reflectors
== [ spec body words values types title ]

除了使用reflect函數之外,也可以使用速寫的版本,包括了spec-of、body-of、words-of、values-of、types-of、title-of。也就是說「reflect system 'values」和「values-of system」作用是一樣的。

這些函數適合用在IDE和自動測試程式中,除此之外,平常應該是不會用到。

沒有留言: