跳轉到內容

鸚鵡虛擬機器/VTABLE 列表

來自華夏公益教科書,為開放世界提供開放書籍

Vtable 列表

[編輯 | 編輯原始碼]
Vtable 名稱 描述
absolute 返回 PMC 的絕對值,以 PMC 的形式
add_attribute 向 PMC 物件新增屬性。屬性通常儲存在 pmc->pmc_ext->_metadata 欄位中。
add_method 向 PMC 的類新增新方法
add_parent
add_role
add_vtable_override
assign_pmc 將 PMC 值分配給 PMC
assign_string_native 將字串分配給 PMC
bitwise_not
bitwise_nots
can
clone
clone_pmc
decrement 將 PMC 的整數值減 1
defined 確定 PMC 是否已定義
defined_keyed
defined_keyed_int
defined_keyed_str
delprop 從 PMC 中刪除屬性
destroy 銷燬 PMC
does
does_pmc
elements
exists_keyed
exists_keyed_int
exists_keyed_str
find_method
freeze
get_attr
get_bignum 獲取 PMC 的 BigNum 表示形式
get_bool 獲取 PMC 的布林值表示形式
get_class
get_integer 獲取 PMC 的整數值表示形式
get_integer_keyed
get_integer_keyed_int
get_integer_keyed_str
get_iter
get_namespace
get_number 獲取 PMC 的浮點值表示形式
get_number_keyed
get_number_keyed_int
get_number_keyed_str
get_pmc 獲取 PMC 的 PMC 表示形式
get_pmc_keyed
get_pmc_keyed_int
get_pmc_keyed_str
get_pointer
get_pointer_keyed
get_pointer_keyed_int
get_pointer_keyed_str
get_repr
get_string 獲取 PMC 的字串表示形式
get_string_keyed
get_string_keyed_int
get_string_keyed_srt
getprop 獲取 PMC 中特定屬性的值
getprops
i_absolute
i_bitwise_not
i_bitwise_nots
i_logical_not
i_net
increment 將 PMC 的整數值加 1
init 初始化 PMC。當使用 new 關鍵字建立新的 PMC 時,會呼叫此方法。
init_pmc
inspect
inspect_str
instantiate
invoke 當 PMC 像函式一樣被呼叫時,會呼叫 invoke vtable 方法。在以下程式碼中
.local pmc mypmc = new 'MyPMCType'
mypmc()

當 PMC 被視為函式呼叫時,第二行會呼叫 invoke vtable 方法。例如,對於字串函式,字串類會使用字串的值查詢具有相同名稱的函式,然後呼叫該函式。當子例程 PMC 被呼叫時,它們會呼叫給定的函式。

is_same
isa
isa_pmc
logical_not
mark 將 PMC 及其所有子項標記為對記憶體管理器有效。這可以防止 PMC 的子項過早地被垃圾收集器收集。
morph
name
neg
new_from_string
nextkey_keyed
nextkey_keyed_int
nextkey_keyed_str
pop_float 如果 PMC 是陣列,則從其頂部彈出浮點值
pop_integer 如果 PMC 是陣列,則從其頂部彈出整數值
pop_pmc 如果 PMC 是陣列,則從其頂部彈出 PMC 值
pop_string 如果 PMC 是陣列,則從其頂部彈出字串值
push_float 如果 PMC 是陣列,則將浮點值壓入其頂部
push_integer 如果 PMC 是陣列,則將整數壓入其頂部
push_pmc 如果 PMC 是陣列,則將 PMC 壓入其頂部
push_string 如果 PMC 是陣列,則將字串壓入其頂部
remove_attribute 從 PMC 中刪除屬性
remove_method
remove_parent
remove_role
remove_vtable_override
set_attr 為給定的 PMC 設定屬性值
set_attr_keyed
set_attr_keyed_str
set_bugnum_int
set_bignum_num
set_bignum_str
set_bool 將 PMC 的值設定為布林值
set_integer_keyed
set_integer_keyed_int
set_integer_keyed_str
set_integer_native 將 PMC 的值設定為整數
set_number_keyed
set_number_keyed_int
set_number_keyed_str
set_number_native 將 PMC 的值設定為浮點值
set_number_same
set_pmc 將一個 PMC 的值設定為另一個 PMC 的值
set_pmc_keyed
set_pmc_keyed_int
set_pmc_keyed_str
set_pointer
set_pointer_keyed
set_pointer_keyed_int
set_pointer_keyed_str
set_string_keyed
set_string_keyed_int
set_string_keyed_str
set_string_native 將 PMC 的值設定為字串
set_string_same
setprop
share
share_ro
shift_float 如果 PMC 是陣列,則將浮點值移至其底部
shift_int 如果 PMC 是陣列,則將整數移至其底部
shift_pmc 如果 PMC 是陣列,則將 PMC 移至其底部
shift_string 如果 PMC 是陣列,則將字串移至其底部
slice
splice
substr
substr_str
thaw
thawfinish
type
type_keyed
type_keyed_int
type_keyed_str
unshift_float 如果 PMC 是陣列,則從其底部取消移出浮點值
unshift_integer 如果 PMC 是陣列,則從其底部取消移出整數
unshift_pmc 如果 PMC 是陣列,則從其底部取消移出 PMC
unshift_str 如果 PMC 是陣列,則從其底部取消移出字串
visit
華夏公益教科書