Setfenv()
គេប្រើវាសំរាប់បញ្ចូល
environment
ឬក៏ table ដែលឡូអាអាចរក្សាគ្រប់ទាំង global
variables ក្នុងការប្រើ ប្រាស់សំរាប់ function ដែលបានផ្តល់។
Syntax:
setfenv (f, table )
F(តំរូវការ) function or number បើសិនជា f គឺជាហ្វាំងសិន ពេលនោះ setfenv() បញ្ចូលនៅ environment សំរាប់ហ្វាំងសិននោះ។
បើសិនជាលេខ environment សំរាប់ហ្វាំងសិនដែល stack
level ត្រូវបានបញ្ចូល
លេខ១មានន័យថា
current
function ចំណែកលេខ២មានន័យថា ហ្វាំងសិនដែលបានហៅនៅ current
function។ នៅពេលបញ្ចូលទៅកាន់ 0 setfenv() បានប្តូរនៅ
environment ដែល running thread (ក្នុង
ករណីដែលមិនមានអ្វីត្រឡប់)
Table(តំរូវការ) ជាតារាងដែលផ្ទុក New Environment
Setmetatable()
ប្រើសំរាប់បញ្ចូល
metastable
សំរាប់ given table (អ្នកមិនអាចប្តូរ metastable
សំរាប់ប្រភេទផ្សេងពី ឡូអា) បើសិនជា Metatable
គឺជា nil វានឹងលុបចេញនៅ metastable ពីតារាង។ បើសិនជា Original metastable មាន _metatable
field វានឹងបង្ហាញ Error។
សំរាប់ហ្វាំងសិននេះនឹងត្រឡប់មកវិញនៅតារាង ដូចគ្នាដែលផ្តលដោយ first argument
របស់ហ្វាំងសិន (with its metastable now set)
Syntax:
setmetatable (table, metatable)
Table(តំរូវការ)វាជាតារាងរបស់ Lua table ដែល metastable ដែលអ្នកចង់ modify
Metastable(តំរូវការ)វាជាឡូអា table ដែលបញ្ចូលជា
metastable ថ្មីសំរាប់ table
សូមមើលកូដះ
local t
= {}
local mt
= { __index = t }
function
t.new()
return setmetatable( {}, mt )
end
return t
What is the purpose to use this?
ReplyDelete