䏋颿˜¯ä¸€ä¸ªLUAé¢å‘对象写法éžå¸¸å¸¸è§çš„写法ã€?br />
Bird = {
color = {};canFly = true
}
function Bird:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
self.color = {}
return o
end
注æ„åQŒè¿™é‡ŒBird¾cÀLœ‰ä¸¤ä¸ªå±žæ€§ï¼Œ1个表åQ?个是基本¾cÕdž‹åQŒç„¶åŽä¸Š‹¹‹è¯•代ç åQˆUtils¾cÕdªæ˜¯ç®€å•çš„ž®è£…¾c»ï¼Œå¯ä»¥è‡ªå·±å®žçŽ°ä¸€ä¸ªï¼‰
local A = Bird:new()
LoggerUtils:debug("------------------------------原始�----------------------------------");
LoggerUtils:debug("Bird canFly:" .. StringUtils.boolean2string(A.canFly));
LoggerUtils:debug("Bird color:");
CommonUtils.printTable(Bird.color)
LoggerUtils:debug("a canFly:" .. StringUtils.boolean2string(A.canFly));
LoggerUtils:debug("a color:");
CommonUtils.printTable(A.color)
--改å˜A的属æ€?br />
A.canFly = false
A.color[1] = "red"
A.color[2] = "blue"
A.color[3] = "green"
LoggerUtils:debug("------------------------------A改å˜å?---------------------------------");
LoggerUtils:debug("Bird canFly:" .. StringUtils.boolean2string(Bird.canFly));
LoggerUtils:debug("Bird color:");
CommonUtils.printTable(Bird.color)
LoggerUtils:debug("A canFly after change:" .. StringUtils.boolean2string(A.canFly));
LoggerUtils:debug("A color after chagne:");
CommonUtils.printTable(A.color)
LoggerUtils:debug("-------------------------------B的�---------------------------------");
local B = Bird:new()
LoggerUtils:debug("B canFly:" .. StringUtils.boolean2string(B.canFly));
LoggerUtils:debug("B color:");
CommonUtils.printTable(B.color)
ä»£ç æ‰§è¡Œ¾l“æžœåQ?br />2014-12-29 11:20:40,690 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: ------------------------------原始å€?----------------------------------
2014-12-29 11:20:40,690 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird canFly:true
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird color:
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: a canFly:true
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: a color:
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: ------------------------------A改å˜å?---------------------------------
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird canFly:true
2014-12-29 11:20:40,691 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird color:
2014-12-29 11:20:40,692 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 1:red
2014-12-29 11:20:40,692 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 2:blue
2014-12-29 11:20:40,692 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 3:green
2014-12-29 11:20:40,692 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: A canFly after change:false
2014-12-29 11:20:40,692 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: A color after chagne:
2014-12-29 11:20:40,693 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 1:red
2014-12-29 11:20:40,693 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 2:blue
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 3:green
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: -------------------------------B的�---------------------------------
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: B canFly:true
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: B color:
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 1:red
2014-12-29 11:20:40,695 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 2:blue
2014-12-29 11:20:40,696 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 3:green
å‘现¼œžé©¬é—®é¢˜äº†å—åQ?br />当Açš„ç±»åž‹äØ“è¡¨çš„å±žæ€§coloræ”¹å˜æ—Óž¼ŒåŽŸå§‹¾cÈš„color属性也改å˜äº†ï¼ŒåŒæ—¶˜q™ä¸ªæ”¹å˜ä¹Ÿåª„å“到新å¾çš„BåQŒè€Œç±»åž‹äؓ基本¾cÕdž‹çš„属性canFlyž®±æ²¡æœ‰è¿™ä¸ªé—®é¢˜ã€?br />我的解决æ–ÒŽ³•是新增一个setæ–ÒŽ³•åQ?br />function Bird:setColor(color)
self.color = color
end
ç„¶åŽä¿®æ”¹æ”¹å˜å±žæ€§çš„æ–¹å¼åQ?br />local color ={}
color[1] = "red"
color[2] = "blue"
color[3] = "green"
A:setColor(color)
输出¾l“æžœåQ?br />2014-12-29 11:31:58,648 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: ------------------------------原始å€?----------------------------------
2014-12-29 11:31:58,648 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird canFly:true
2014-12-29 11:31:58,649 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird color:
2014-12-29 11:31:58,649 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: a canFly:true
2014-12-29 11:31:58,649 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: a color:
2014-12-29 11:31:58,649 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: ------------------------------A改å˜å?---------------------------------
2014-12-29 11:31:58,649 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird canFly:true
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: Bird color:
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: A canFly after change:false
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: A color after chagne:
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 1:red
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 2:blue
2014-12-29 11:31:58,650 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: 3:green
2014-12-29 11:31:58,651 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: -------------------------------B的�---------------------------------
2014-12-29 11:31:58,651 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: B canFly:true
2014-12-29 11:31:58,653 [main] DEBUG server.app.game.util.LoggerUtils:34 - LUA: B color:
å¦å¤–åŒäº‹ä¸€ä¸ªè§£å†Ïx–¹æ³•æ›´½Ž€å•,直接修改new()æ–ÒŽ³•åQŒå…¶å®ƒçš„地方都ä¸ç”¨æ”¹åQ?br />function Bird:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
o.color = {}
return o
end
˜q™ä¸ªé—®é¢˜åŸºæœ¬ä¸Šç½‘上的½CÞZ¾‹è²Œä¼¼éƒ½æ²¡æåˆ°åQŒæˆ‘è¯Èš„书里也没有,实际调试˜q‡ç¨‹ä¸æ‰å‘çŽ°çš„ï¼Œä¼šé€ æˆæ–°åˆ›å»ºçš„¾c»é‡Œä¼šæœ‰ä¸è¯¥æœ‰çš„属性,比较蛋疼ã€?br />å…·ä½“åŽŸå› ä¸äº†è§£ï¼Œæœ‰æœ¨æœ‰ç’åæŒ‡æ•™ä¸€ä¸‹ï¼Ÿ™åÞZ¾¿é—®é—®˜q™ä¸¤¿U方法哪¿U更好?
]]>