Lua学習の5つの対象
3395 ワード
Luaにはオブジェクト向けのものはありませんが、実現できます.
オブジェクト向けの学習パスは次のようになります.
self,コロン,点の概念--』メタテーブルの概念--』オブジェクトの概念--』継承/再ロード
self,コロン,点の概念
ここの出力
メタテーブルの概念
ここの出力
オブジェクトの概念
ここの出力
継承/再ロード
ここで出力
Lua学習の1つの環境構築:https://blog.csdn.net/cmqwan/article/details/80742135Lua学習の2つの基本的なタイプ:https://blog.csdn.net/cmqwan/article/details/80742990Lua学習の3つのプロセス制御:https://blog.csdn.net/cmqwan/article/details/80749169Lua学習の4サイクル:https://blog.csdn.net/cmqwan/article/details/80749241
Lua学習の5つの対象:https://blog.csdn.net/cmqwan/article/details/80749348Lua学習の6つのモジュール:https://blog.csdn.net/cmqwan/article/details/80752806Lua学習の7つのソース:https://blog.csdn.net/cmqwan/article/details/80752873
Lua学習の1つの環境構築
Lua学習の二基本タイプ
Lua学習の三フロー制御
Lua学習の四サイクル
Lua学習の5つの対象
Lua学習の6モジュール
Lua学習の七源コード
オブジェクト向けの学習パスは次のようになります.
self,コロン,点の概念--』メタテーブルの概念--』オブジェクトの概念--』継承/再ロード
self,コロン,点の概念
--self, ,
print(" -----------------------------------------------------")
-- a.test(a,4,6), b:test(4,6)
-- , self
-- , b:test,
local a = {}
function a.test(self,pam1,pam2)
print("a.test",self)
print(pam1,pam2)
end
a.test(a,4,6)
local b = {}
function b:test(pam1,pam2)
print("b:test",self)
print(pam1,pam2)
end
b.test(4,6)
b:test(4,6)
ここの出力
a.test table: 0D98C898
4 6
b:test 4
6 nil
b:test table: 0D98C780
4 6
table: 0D98C758
メタテーブルの概念
--
local a = {
key1 = "test1"
}
local meta_a = {
__index = {
name = "blake",
age = 34,
sex = 0,
key1 = "test2"
}
}
-- , ,
--
--setmetatable ( ) getmetatable
setmetatable(a,meta_a)
print(getmetatable(a))
-- key
--
--
-- key,
-- lua __index key
print(a.key1)
print(a.name)
print(a.name2)
ここの出力
test1
blake
nil
オブジェクトの概念
--
local base = {}
--
function base:test()
print("base:test",self)
end
function base:new(instant)
if not instant then
instant = {}
end
setmetatable(instant,{__index = self}) --
return instant
end
-- new
-- instant nil
local b = base:new()
print("b addr is " ,b)
b:test()
local c = base:new()
c:test()
-- new
local instant = {}
local d = base:new(instant)
local e = base:new(instant)
d:test()
e:test()
ここの出力
b addr is table: 0D98CAC8
base:test table: 0D98CAC8
base:test table: 0D98CB40
base:test table: 0D98CF28
base:test table: 0D98CF28
継承/再ロード
-- ,
print(" , -----------------------------------------------------")
local person = {}
--
function person:test()
print("person:test",self)
end
function person:get_age()
print("person:get_age",self)
end
function person:new(instant)
if not instant then
instant = {}
end
setmetatable(instant,{__index = self}) --
return instant
end
local man = person:new()
function man:test_man()
print("man:test_man",self)
end
function man:test_man2()
print("man:test_man2",self)
end
function man:get_age()
print("man:get_age",self)
end
local p = man:new()
print("p = ====",p)
p:test_man()
p:test()
--
p:get_age()
ここで出力
, -----------------------------------------------------
p = ==== table: 0D98CC08
man:test_man table: 0D98CC08
person:test table: 0D98CC08
man:get_age table: 0D98CC08
Lua学習の1つの環境構築:https://blog.csdn.net/cmqwan/article/details/80742135Lua学習の2つの基本的なタイプ:https://blog.csdn.net/cmqwan/article/details/80742990Lua学習の3つのプロセス制御:https://blog.csdn.net/cmqwan/article/details/80749169Lua学習の4サイクル:https://blog.csdn.net/cmqwan/article/details/80749241
Lua学習の5つの対象:https://blog.csdn.net/cmqwan/article/details/80749348Lua学習の6つのモジュール:https://blog.csdn.net/cmqwan/article/details/80752806Lua学習の7つのソース:https://blog.csdn.net/cmqwan/article/details/80752873
Lua学習の1つの環境構築
Lua学習の二基本タイプ
Lua学習の三フロー制御
Lua学習の四サイクル
Lua学習の5つの対象
Lua学習の6モジュール
Lua学習の七源コード