
ããã¯ã
Corona SDKã® Luaèšèªã®åºæ¬æŠå¿µã«é¢ããèšäºã®3ã€ã®ããŒãã®2çªç®ã§ãïŒ
æåã®ããŒããèªãã§ããªãå Žåã¯ã
æåã«èªãããšããå§ãããŸãïŒããã®ããŒãã§ã¯ãèšèªã®ãã¹ãŠã®ããŒã¿åãæ€èšããŸãã ãã¹ãŠã®ã¿ã€ãã®å€æ°ãåæåãããããã®å€ã䜿çšããŠãããã¿ã€ããå¥ã®ã¿ã€ãã«å€æããæ¹æ³ãåŠç¿ããŸãã ãã®èšäºã¯èšèªåŠç¿ã®ç¹ã§éåžžã«éèŠã§ãããã²ãŒã ãæžãéã«å€ãã®ééããé¿ããããšãã§ãã貎éãªãã³ãã倿°è¿œå ããããšããŸããã
ããŒã¿åãšãã®å€æ
Luaã«ã¯8ã€ã®ããŒã¿åããããŸãã åãæ€èšããåã«ãluaèšèªã®æšæºæ©èœã§ããåã«æ³šç®ããŸãã ãã®é¢æ°ã¯ãæå®ããã倿°ãŸãã¯ããŒã¿ã®ããŒã¿åã®ååãå«ãæååãè¿ããŸãã å颿°ã®äœ¿çšäŸïŒ
n = nil st = '' pi = 3.14 func = function()end t = {} b = true co = coroutine.create(function ()end) print(type(n), type(st), type(pi), type(func), type(t), type(b), type(co))
次ã«ããã®èšèªLuaã®ã¿ã€ããæ€èšããŸãã
ã¿ã€ãnil
ããã©ã«ãã§ã¯ããã®ããŒã¿åã«ã¯å€ãå²ãåœãŠãããŠããªã倿°ããããŸãã ã¿ã€ãnilã®ãã¹ãŠã®å€æ°ã®å€ã¯nilã§ãã ãã®ã¿ã€ãã¯ã次ã®2ã€ã®æ¹æ³ã§å€æ°ã«å²ãåœãŠãããšãã§ããŸãã
local B = nil
倿°ãçŸåšã®ã¹ã³ãŒãã§åæåãããŠããªãå Žåããã®åãšå€ã¯nilã«ãªãããšã«æ³šæããŠãã ããã ã¿ã€ãnilã®å€æ°ã¯ãè«çæŒç®ã§ã¯ãªãå€falseãæã€è«ç倿°ã®æ¯èŒã®é åºã§æ¯èŒã§ããŸãããå®éã«ã¯ãããã®ã¿ã€ãã¯é¡äŒŒããŠããªããããäŸã瀺ããŸãã
n = nil b = false if not n then
ããŒã«å
ããŒã«åã¯ãæ¯èŒæŒç®ãå®è£
ãããããè«çåãŸãã¯ããŒã«åãšãåŒã°ããŸãã åè¿°ã®ããã«ãããŒã«ã«ã¯falseãštrueïŒ
falseãštrue ïŒã®2ã€ã®å€ã®ã¿ã
ãããŸã ã ãã¹ãŠã®æ¯èŒæŒç®ã¯ãããã®å€ãæ£ç¢ºã«è¿ãããããã®ã¿ã€ãã®å€æ°ã¯æ¯èŒæŒç®ã®å€ãå²ãåœãŠãããšã§åæåã§ããŸãããå€ãçŽæ¥å²ãåœãŠãããšã§åæåããããšãã§ããŸãã ããŒã«åã®å€æ°ã¯ãçå·ããã³äžçå·ã®æäœãããã³if / elseifã®æ¯èŒæ¡ä»¶ãšã®ã¿çŽæ¥æ¯èŒã§ããŸãã
åçª
æ¡åŒµãããæ°å€ã¿ã€ãã®å®å
šãªèª¬æã¯ããã®ããã¹ãã®ç¯å²ã倧ããè¶
ããŠããããã奜å¥å¿itiveçãªãŠãŒã¶ãŒã¯
ãªã³ã¯ããã©ãã仿§ã詳现ã«çè§£ã§ããŸãã ç§ã¯ãæŽæ°ãšæµ®åå°æ°ç¹ã®äž¡æ¹ã®è² æ°ã𿣿°ã®äž¡æ¹ããã®ã¿ã€ãã«å¯Ÿå¿ã§ãããšèšãããšãã§ããŸããç¹å®ã®ã¬ãã«ã®æ£ãšè² ã®ãããã§ã¯ãææ°åœ¢åŒã®æ°å€ãžã®èªåé·ç§»ããããŸããããããå¶éã¯ããã€ã¹ã®ããã»ããµã®ããã容éã«äŸåããŸãããçŸæç¹ã§ã¯
Corona SDKã¯Android 4.0.3以éããµããŒãããŠã
ãŸã ãããã¯ãã»ãšãã©ã®å Žåãå©çšå¯èœãªãã¹ãŠã®ããã€ã¹ã64ãããã«ãªãããšãæå³ããŸãã æ°å€åã®å€æ°ãåæåããã«ã¯ã䜿çšå¯èœãªåœ¢åŒã®ããããã§å€ãæç€ºçã«å²ãåœãŠãããèšç®çµæã«å€æ°ãå²ãåœãŠããããã®åã®å¥ã®å€æ°ãšåçã«ããã ãã§ååã§ãã è«çæ¯èŒã®æäœã§åçªå·ã®å€æ°ã¯ãã¹ãŠ0ïŒããã³-1ïŒã§ãtrueãè¿ãããšã«æ³šæããŠãã ãããããã¯ãc ++èšèªïŒ
ãªã© ïŒã®ãã¡ã³ãèæ
®ããå¿
èŠããããŸãïŒ0ã¯falseã«é¡äŒŒããŠããŸãïŒã ã¿ã€ãçªå·ã䜿çšããæäœã®äŸã瀺ããŸãã
local a,b = 2,3
ã¿ã€ãçªå·ã®å€æ°ã䜿çšãããšãå€ãã®æ°å€æŒç®ãå®è¡ã§ããŸãããã®äž»ãªäŸã以äžã«ç€ºããŸãã
a = b + c
ã¿ã€ãæåå
Stringåã¯Luaã§éåžžã«ããéçºãããŠããããã®åã®å€æ°ãåããå€ãã®æ©èœãåããŠããŸãã æåååã®å€æ°ãäœæããæ¹æ³ïŒ
local st1 = 'qwert'
äŸããæ°ã¥ããããã«ãæååã®
é£çµã¯ 2ã€ã®ãã€ã³ãã«ãã£ãŠå®è¡ãããŸããããã«ãé£çµããã»ã¹èªäœã¯ãæ°å€ãæååã«å€æããæ¹æ³ã®1ã€ãšããŠäœ¿çšã§ããŸããäŸãæããŸãã
i = 10
ã芧ã®ãšãããæ°å€ããæååãžã®å€æã¯éåžžã«ç°¡åã§ãã ã©ã€ã³ã«ãããªã³ã°ã䜿çšããå Žåãã¯ã©ããæŒç®åãšãªãã©ã³ãã®éã«ã¹ããŒã¹ãå
¥ããã®ãæåã§ããããšã«æ³šæããŠãã ãããããã¯å¿
ãããå¿
èŠã§ã¯ãããŸããããæåã¯ãšãŠãçŸããæç¢ºã§ãããæ¬¡ã«ãªãã©ã³ãã®1ã€ã§ããããã -æ°åïŒæ°å
ãšçãã倿°ãã€ãŸãæ°åã§ ã¯ãããŸãã ïŒãã¹ããŒã¹ãå
¥ã
ãªããšãã
äžæ£ãªåœ¢åŒã®æ°åãè¿ãã«ãããŸãããšãããšã©ãŒãçºçããŸãã 倿ããããã®åŸæ¥ã®ã¢ãããŒãããããŸãããäž¡æ¹åã®ç¿»èš³ã®äŸã瀺ããŸãã
i1 = 1 s1 = '11' i2 = tonumber(s1)
ãŸããæååããæ°å€ãžã®æé»çãªå€æãååšããããšãä»ãå ããŸããããããè¡ããªãããšã匷ããå§ãããŸã-ããã¯å®å
šã«ããã®ã§ããããã€ã®æ¥ãè€éãªãšã©ãŒã«ã€ãªããã§ãããïŒ
æåååã®å€æ°ãåæåãããšãè€éãªã¢ãŒã¡ã³ããçºçããããšããããããŸããããã«ã€ããŠç°¡åã«èª¬æãããããã解決ããæ¹æ³ã瀺ããŸãã
- æååã«äºéåŒçšç¬ŠãŸãã¯åäžåŒçšç¬ŠããããŸã-ããã¯ã2ã€ã®æ¹æ³ã®ããããã§è§£æ±ºãããŸãïŒæåã®åã«ã¹ã©ãã·ã¥ã\ãã眮ãå¿
èŠããããŸããæååãéããã«ã¯ãäžéåŒçšç¬ŠãšäºéåŒçšç¬Šã®äž¡æ¹ã䜿çšã§ããŸãã
- è¡ã«ã¹ã©ãã·ã¥æåã\ãããããŸãããã®åé¡ã解決ããã«ã¯ãã¹ã©ãã·ã¥ã«ç«ã€æåããããŒãžã£ãŒã§ãããšã€ã³ã¿ãŒããªã¿ãŒãä¿¡ããŠããããããã®åé¡ã解決ããããã«å¥ã®ã¹ã©ãã·ã¥ãå
¥åããå¿
èŠããããæååã\\ãã¯æå1ãšèŠãªãããŸã
äžã§æžããããã«ãstringã«ã¯å€ãã®äŸ¿å©ãªã¢ã¡ããã£ãå«ãŸããŠããŸãããããã¯ä»¥äžã§èª¬æãã颿°ã䜿çšããŠå®è£
ãããŸãã
string.lenïŒsïŒ/ sïŒlenïŒïŒ
ãã®é¢æ°ã䜿çšãããšãæååã®é·ããæ±ºå®ã§ããŸãã ããã¯ã
æååã©ã€ãã©ãªã®ä»ã®ã»ãšãã©ã®é¢æ°ãšåæ§ã«ã2ã€ã®æ¹æ³ã§äœ¿çšã§ããŸããã以äžã®æ©èœã®äŸããããŸãã䜿çšäŸã以äžã«ç€ºããŸãã
ãããããæ°ã¥ãã®ããã«ã颿°ã䜿çšããæ¹æ³ã¯ééã£ãŠããŸããã³ã¡ã³ãã¯ãšã©ãŒã®æ¬è³ªã説æããŠããŸãã 颿°ã䜿çšããããã®ã«ãŒã«ã¯ãã©ã€ãã©ãªã®ä»ã®ãã¹ãŠã®é¢æ°ã«å
±éã§ãããããä»åŸã¯ããã«ã€ããŠè©³ãã説æããŸããã
string.byteïŒs [ãi [ãj]]ïŒ/ sïŒãã€ãïŒ[i [ãj]]ïŒ
ãã®é¢æ°ã¯ãiçªç®ããjçªç®ãŸã§ã®æååã®æåã³ãŒããè¿ããŸãã ãã©ã¡ãŒã¿iãšjã¯ãªãã·ã§ã³ã§ããjãæå®ããªãå Žåãiçªç®ã®èŠçŽ ã®ã³ãŒãã®ã¿ãè¿ãããŸããiãæå®ããã«jãæå®ãããšãæåããjçªç®ã®æåã³ãŒããè¿ãããŸããæååã®æåã®æåã®ã³ãŒãã 颿°ã®äœ¿çšäŸã瀺ããŸãã
local s = 'Example' print(s:byte())
string.charïŒi1ãi2ã...ïŒ
ãã®é¢æ°ã«ã¯ãæåçªå·ãæã€1ã€ä»¥äžã®ãã©ã¡ãŒã¿ãŒãæž¡ãããéä¿¡ããããã¹ãŠã®æåã«çããæååãè¿ãããŸãã ãã®é¢æ°ã¯ãstring.charïŒïŒé¢æ°ã«é¢ããŠå察ã®ç®çãæã£ãŠããŸãã 䜿çšäŸïŒ
print(string.char(65))
string.findïŒsããã¿ãŒã³[ãã€ã³ããã¯ã¹[ãno_regular]]ïŒ
sïŒæ€çŽ¢ïŒãã¿ãŒã³[ãã€ã³ããã¯ã¹[ãno_regular]]ïŒ
æ€çŽ¢æ©èœã䜿çšãããšãæååsã§ãã¿ãŒã³patternã®äœçœ®ãæ€çŽ¢ã§ããŸããèŠã€ãããªãå Žåã¯nilãæ€çŽ¢ã§ããŸãã ãã¿ãŒã³ã¯ãæååãŸãã¯æ£èŠè¡šçŸã®ãããã
ã§ã ïŒ
å¥ã®ç« ã§æ£èŠè¡šçŸã®è©³çްãåŠç¿ããŸã ïŒã findã®æãç°¡åãªãŠãŒã¹ã±ãŒã¹ãæ€èšããæ¬¡ã«ãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã®æ©èœã«ç§»ããŸãããã
local s = "Hello Lua!" print(string.find(s,"Lua"))
ã€ã³ããã¯ã¹ãã©ã¡ãŒã¿ã¯ããã©ã«ãã§1ã§ããããã¯ãæåããæ€çŽ¢ããå Žåãæåã«èŠã€ãã£ããšã³ããªã®äœçœ®ãè¿ãããããšãæå³ããŸããã€ã³ããã¯ã¹ãäŸ3ã«èšå®ãããšãæååã®3çªç®ã®åºçŸãå
é ããè¿ãããŸããè¡æ«ã no_regularãã©ã¡ãŒã¿ãŒã¯è«ççã§ãã true / falseïŒtrue / falseïŒãæå®ã§ããŸããããã©ã«ãã§ã¯ãã©ã¡ãŒã¿ãŒã¯falseã§ããtrueã«èšå®ãããšããã¿ãŒã³ãã©ã¡ãŒã¿ãŒã¯ãæ£èŠè¡šçŸãå
¥åããå Žåã§ãåžžã«æ£èŠã®æååãšããŠèªèãããŸãã findã®æ¡åŒµäœ¿çšã®äŸã次ã«ç€ºããŸãã
s = 'La La La La %sLa La' print(s:find('La', 2))
string.formatïŒsãe1ãe2ã...ïŒ
sïŒåœ¢åŒïŒe1ãe2ã...ïŒ
string.format颿°ã¯ãäžé£ã®åŒæ°ãæã€ãã©ãŒããããããæååãäœæããŸãã äžèŠãããšããã®é¢æ°ã¯çè§£ãã«ããããã«æãããããããŸããããå®éã«ã¯ãæçµæ
å ±ã衚瀺ãããšãã«å€ãã®æ§é ã倧å¹
ã«ç°¡çŽ åã§ããŸãããŸããããšãã°ãæ°å€ãã16é²ã³ãŒãã®ã¹ããªã³ã°ãžã®ãã®ä»ã®éæ¥çãªå€æã«ãéåžžã«äŸ¿å©ã§ãã æãç°¡åãªäŸãæããŸãã
local sum1,sum2 = 100,200
ã芧ã®ãšãããæåã«è¡åœ¢åŒããããŸãããã®åœ¢åŒã«ã¯ããã®ãã©ã¡ãŒã¿ãŒã«ç¶ããã©ã¡ãŒã¿ãŒã®äœ¿ç𿹿³ã瀺ãåŒæ°ãå«ãŸããŠããŸãã æ°å€ã管çããããã®åŒæ°ã¯11ïŒ
cãdãEãeãfãgãiãoãuãXãx ïŒ
ãæååã管çããããã®åŒæ°ã¯2ïŒ
sãq ïŒã§ãã æ¬¡ã«ãååŒæ°ã«ã€ããŠç°¡åã«èª¬æãããã®åŸã§äœ¿çšäŸã瀺ããŸãã
- ïŒ
s-ãã©ã¡ãŒã¿ãŒã¯æååãšèŠãªãããåçŽã«æ¿å
¥ãããŸã
- ïŒ
q-ãã©ã¡ãŒã¿ã¯æååãšèŠãªãããäºéåŒçšç¬Šã§å²ãŸããŠããŸã
- ïŒ
c-æ°å€ã¯ã察å¿ãããã©ã¡ãŒã¿ãŒå
ã®æ°å€ãæã€æåã«çœ®ãæããããŸã
- ïŒ
d-æž¡ãããæ°ã ãã倿Žãªãã§æ¿å
¥ãããŸã
- ïŒ
i-æ°å€ã¯æŽæ°åã®ç¬Šå·ä»ãæŽæ°ãšããŠè¡šãããŸã
- ïŒ
u-æ°å€ã¯ã笊å·ãªãæŽæ°åã®ç¬Šå·ãªãæŽæ°ãšããŠè¡šãããŸã
- ïŒ
o-æ°å€ã¯8鲿°ã«å€æãããŸã
- ïŒ
xãïŒ
X-æ°å€ã¯16鲿°ã·ã¹ãã ã«å€æãããŸããæååã®æåã®å€§æåãšå°æåã¯åŒæ°ã®å€§æåãšå°æåã«ãã£ãŠç°ãªããŸã
- ïŒ
fãïŒ
g-æ°å€ã¯å®æ°ïŒæµ®åå°æ°ç¹ïŒãšèŠãªãããŸããïŒ
fã®å Žåã¯ãã©ãŒãããããã£ã±ãã§ãïŒ
gã®å Žåã¯å°æ°ç¹ä»¥äž5æ¡ã«ççž®ãããŸãã
- ïŒ
EãïŒ
e-æ°å€ã¯ææ°åœ¢åŒã«å€æãããŸããæååå
ã®æåEã®å€§æåå°æåã¯åŒæ°ã®å€§æåå°æåã«ãã£ãŠç°ãªããŸã
print(string.format('Number: %d, Signed: %i, Unsigned: %u', 100,-100,-200))
string.lowerïŒsïŒ/ sïŒlowerïŒïŒ
ãã®é¢æ°ã¯ãæååã®ãã¹ãŠã®æåãå°æåã«å€æããŸãã
print(string.lower('Hello World!'))
string.upperïŒsïŒ/ sïŒäžéšïŒïŒ
ãã®é¢æ°ã¯ãæååã®ãã¹ãŠã®æåã倧æåã«å€æããŸãã
print(string.upper('Hello World!'))
string.repïŒsãnïŒ/ sïŒrepïŒnïŒ
颿°ã«ã¯æååãšæ°å€nãæž¡ãããæååã¯nåç¹°ãè¿ãããŸãã
local s = 'Corona ' print(s:rep(3))
string.reverseïŒsïŒ/ sïŒreverseïŒïŒ
ãã®é¢æ°ã¯ãæåã®éé ã§æž¡ãããæååãè¿ããŸãã
print(string.reverse('9876543210'))
string.matchïŒsããã¿ãŒã³[ãã€ã³ããã¯ã¹]ïŒ
sïŒäžèŽïŒãã¿ãŒã³[ãã€ã³ããã¯ã¹]ïŒ
string.match颿°ã¯ãæ£èŠè¡šçŸãã¿ãŒã³ã«åŸã£ãŠstringå
ã®ãšã³ããªãæ€çŽ¢ãããã£ããã£ãã©ã¡ãŒã¿ãŒãè¿ããŸãã æ£èŠè¡šçŸã®ãã£ããã£ã«ã€ããŠã¯ã察å¿ããã»ã¯ã·ã§ã³ã§è©³ãã説æããŸãã ãã®é¢æ°ã«ã¯ãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã€ã³ããã¯ã¹ããããããã¯ããã©ã«ãã§1ã«çãããã©ã®ã¢ã«ãŠã³ããããã¿ãŒã³ããã£ããã£ããããæ±ºå®ããŸã; string.findãšåæ§ã«ãè² ã®ã€ã³ããã¯ã¹å€ã¯ãµããŒããããŠããªãããšã«æ³šæããŠãã ããïŒ
local reg = " (%w+):(%d+)"
string.gmatchïŒsããã¿ãŒã³ïŒ
sïŒgmatchïŒãã¿ãŒã³ïŒ
string.gmacth颿°ã¯ãå€ãã®ç¹ã§string.macth颿°ã«äŒŒãŠããŸãããã«ãŒãã®åŒæ°ãšããŠäœ¿çšããããšãç®çãšããŠããŸãïŒã«ãŒãã®è©³çްã«ã€ããŠã¯ã察å¿ããã»ã¯ã·ã§ã³ã§èª¬æããŸãïŒã string.gmacthã¯ãæååå
ã®ãã¹ãŠã®åºçŸããã®ãã£ããã£ãåšæçã«è¿ããŸãã ã€ã³ããã¯ã¹ã¯å¿
é ã§ã¯ãããŸãããæ¬¡ã®äŸã®ããã«ãªããŸãã
local reg = " (%w+):(%d+)"
ã«ãŒãããã¯ã¯Luaã®æã匷åãªããŒã«ã§ããã«ãŒãããã¯ã䜿çšã§ããããšã«ãããè€éãªæååå€ãè§£æããããã®å€ãã®ã«ãŒãã³æäœã倧å¹
ã«å®¹æã«ãªããŸãã
string.subïŒsãi [ãj]ïŒ
sïŒsubïŒi [ãj]ïŒ
string.sub颿°ã¯ãæž¡ãããæååã®éšåæååãè¿ããŸãã éšåæååã¯ãiçªç®ã®æåã§å§ãŸããŸãã 3çªç®ã®åŒæ°jãæå®ãããŠããªãå Žåããµãã¹ããªã³ã°ã¯è¡æ«ã§çµäºããŸãã 3çªç®ã®åŒæ°ãæå®ãããŠããå Žåããµãã¹ããªã³ã°ã¯jçªç®ã®æåã§çµäºããŸãã iãŸãã¯jã®å€ãè² ã®å Žåãã«ãŠã³ãã¯è¡ã®æåŸããå§ãŸããŸãã 䜿çšäŸã瀺ããŸãã
local s = 'To be or not to be' print(s:sub(7))
string.gsubïŒsããã¿ãŒã³ã眮æ[ãn]ïŒ
sïŒgsubïŒãã¿ãŒã³ã[ãn]ã眮æïŒ
string.gsub颿°ã¯ãæã匷åãªèšèªé¢æ°ã®1ã€ã§ãã ãã®é¢æ°ã«ã¯ãæãåçŽãªå Žåã«ããã€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸããæååsã®ãã¿ãŒã³ã§æå®ããããã¹ãŠã®äžèŽãããã¹ãŠã®å Žæã§replaceã§æå®ãããå€ã«çœ®ãæããŸã.nã䜿çšããŠã眮æã®æ°ãå¶éã§ãã颿°ã¯çµæã®æååãšçœ®æã®æ°ãè¿ããŸãïŒ
local s = 'dust ist fantastisch' print(s:gsub('s','S'))
string.findãšåæ§ã«ãæ£èŠè¡šçŸïŒãã£ããã£ïŒãæ€çŽ¢ãã¿ãŒã³ãšããŠäœ¿çšã§ããŸãã ãã£ããã£åŒæ°ã¯ãindexïŒ
index_numberã«åŸã£ãŠé
眮ã§ããŸãã
print(string.gsub("lalalalala", "(l)(a)", "%2%1"))
颿°ã¯çœ®æãã©ã¡ãŒã¿ãŒãšããŠäœ¿çšã§ããŸãããæ£èŠè¡šçŸã«ãã£ãŠãã£ããã£ãŒããããã©ã¡ãŒã¿ãŒã¯ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããŸãã
string.gsub("12 23 34", "(%d+)", print)
utf-8ã«ã€ããŠäžèšã
ãã®ãããæååã©ã€ãã©ãªã®ã»ãšãã©ã®é¢æ°ã¯
utf-8圢åŒã§æ£ããåäœã§ããŸãããããã¯ãåœå¥ãšã³ã³ãŒãããã®ä»ã®ç¹æ®æåãå«ãæååãæ£ããåŠçãããªãããã§ãã ãããã®åé¡ã解決ããããã«ãCorona SDKã«ã¯åå¥ã®
utfã©ã€ãã©ãªããããŸããããã«ã¯ãæååã©ã€ãã©ãªã®æ©èœã®é¡äŒŒç©ãšãã®ããã€ãã®æ©èœããããŸãã 詳现ã«ã€ããŠã¯ããã®ã©ã€ãã©ãªã¯Corona SDKã®åŠç¿ã®ã³ã³ããã¹ãã§æ€èšãããŸãããèªè
ã¯ç¬èªã«åŠç¿ããããšãã§ããŸãã
ã¿ã€ã衚
ããŒãã«ã¿ã€ãã¯ãLuaã®ããŒã¿è¡šçŸã®æãåºæ¬çãªã¿ã€ãã§ãããæãäžè¬çãªæå³ã§ã¯ãèšèªã®ã»ãšãã©ãã¹ãŠã®äž»èŠãªãšã³ãã£ãã£ã¯ããŒãã«ã§ããããœãŒã¹ãã¡ã€ã«ã§ãã ããŒãã«ã®äœææ¹æ³ãšãããã®æäœæ¹æ³ïŒ
local t = {}
ãŸã£ããåãããŒãã«ãå¥ã®æ¹æ³ã§åæåã§ããŸãã
local t = { key1 = 'name1', key2 = { key3 = 123, }, }
ãããã®ãšã³ããªã¯åäžã§ããããšã«æ³šæããŠãã ããã
t['key1'] = 'name1' t.key1 = 'name1'
æåã®ã¿ã€ãã®ã¬ã³ãŒãã®æå³ã¯ãæ°å€ãããŒãšããŠäœ¿çšãããå Žåã«ã®ã¿ååšããŸãã
t[1] = 111
衚ã«èšé²ãããŠããå€ã¯ãèªã¿åãããã³æžã蟌ã¿ã«äœ¿çšã§ããŸãã
print(t.key1)
ããŒãã«ã®å
容å
šäœãã¯ãªã¢ããã«ã¯ã次ã®ããããã®æ¹æ³ã䜿çšã§ããŸãã
t = {}
ããŒãã«ããŒã®1ã€ãåé€ããå Žåã¯ã次ã®2ã€ã®æ¹æ³ããããŸãã
t.key1 = nil
Luaã§ããŒãã«ãåæåããæãèªç¶ãªæ¹æ³ã¯ãçªå·ä»ãé
åãäœæããããšã§ããããã¯æ¬¡ã®æ¹æ³ã§è¡ãããŸãã
local t = {23, 45, 3.14, 'vasia', {12, 'a'}}
å®éãããŒãã«ã®åæåäžã«ããŒãæå®ããªãå Žåãçªå·ä»ãã¯1ããå§ãŸãæé ã§è¡ãããŸãïŒã»ãšãã©ã®éçºè
ã«ãšã£ãŠã0ããã®çªå·ä»ãã¯ããèªç¶ã§ãããLuaã§ã¯ããã§ã¯ãªãã®ã§ããããèŠããŠããå¿
èŠããããŸãïŒã åæåãããããŒãã«ã¯ãå®éã«ã¯æ¬¡ã®ããã«ãªããŸãã
local t = { [1] = 23, [2] = 45, [3] = 3.14, [4] = 'vasia', [5] = { [1] = 12, [2] = 'a', }, }
ã芧ã®ãšãããããŒã¿ã®ãè£åŽãã§ã¯ãéåžžã«éèŠãªå€æãè¡ãããŠããŸãã Luaã®çªå·ä»ãããŒãã«ã«ã¯ç¹å¥ãªããããã£ããããŸããããšãã°ãããŒãã«åã«ïŒèšå·ã远å ãããšãããŒãã«å
ã®å³å¯ã«çªå·ä»ããããå€ã®æ°ãååŸãããŸãã
print(#t)
ïŒããååŸããå³å¯ã«çªå·ä»ããããæ°ããããŒãããŒãã«ã«è¿œå ãããšãããŒãã«ã®ãµã€ãºãå¢å ããŸãã
t[#t+1] = 'kolia' print(#t)
ããšãã°ãnilãå²ãåœãŠãŠããŒã®1ã€ãåé€ãããšãããŒ[3]çªå·ä»ãé
åã®é£ç¶éšåã¯2ã€ã®ããŒ[1]ãš[2]ã«åæžããã誀解ã«ãããããªããšã©ãŒã«ã€ãªããããšã¯ãããŸããã table.removeã䜿çšããŠããŒãã«ããããŒãåé€ããŸããããŒãåé€ãããšãæ®ãã®å³å¯ã«çªå·ä»ããããå€ãã·ãããããããã§ãã
ããŒãæ£ããåé€ããããšãããŒãã«ã¯æ¬¡ã®ããã«ãªããŸãã
local t = { [1] = 23, [2] = 45, [3] = 'vasia', [4] = { [1] = 12, [2] = 'a', }, [5] = 'kolia', }
å³å¯ã«çªå·ä»ããããããŒãã«ã«ä»ã®çªå·ãªãããŒã远å ã§ããŸãããããã¯ããŒãã«ã®ããã©ãŒãã³ã¹ã«åœ±é¿ããŸããããïŒã§ãµã€ãºãååŸãããšãã«ãããã®ããŒãèæ
®ãããŸããã
t.key = 'name1' print(t.key, #t)
åŸªç°æäœã§ããŒãã«ã®ãã¹ãŠã®çªå·ä»ãå€ããã€ãã¹ããã«ã¯ãipairs颿°ããããŸããããã¯ãstring.gmatchãšåæ§ã«ãforã«ãŒãã®åŒæ°ãšããŠäœ¿çšãããŸãã
for key, value in ipairs(t) do print(key, value) end
å³å¯ã«çªå·ä»ããããŠããªãå€ãå«ãããã¹ãŠã®å€ãã«ãŒãããå Žåã¯ããã¢é¢æ°ã䜿çšããŸãã
for key, value in pairs(t) do print(key, value) end
泚æããŠãã ããïŒ ãã¢ã䜿çšããå Žåãåºåå€ã®ã·ãŒã±ã³ã¹ã¯å³å¯ã§ã¯ãããŸããããäžè¬çã«ã¯æ··ä¹±ãæãããããããèæ
®ããå¿
èŠããããŸãã çµè«ãšããŠããã¢/ ipairsã䜿çšãããšãããŒãã«ã®å€ãæž¡ãããæ¬¡ã®ãããªåŒã³åºãã§çŽæ¥äœæããããšãã§ããŸãã
for key, value in ipairs{10,20,30} do print(key, value) end
å颿°
颿°ã¿ã€ãã«ã¯ããã¹ãŠã®ãŠãŒã¶ãŒäœæé¢æ°ãšæšæºèšèªé¢æ°ããããŸãã äŸãæããŸãã
local summ = function(a,b) return a + b end print(type(summ))
颿°ã®é©çšã«ã€ããŠã¯ã察å¿ããã»ã¯ã·ã§ã³ã§è©³ããåŠç¿ããŸãã
ã¿ã€ãã¹ã¬ãã
ã¹ã¬ããã¯ç¬ç«ããã³ãŒãå®è¡ã¹ã¬ããã§ãã ãããäœã§ããããç°¡åã«èª¬æããããšããŸãã Luaãããžã§ã¯ãã®ãã¹ãŠã®ã³ãŒãã¯ãåäžã®å®è¡ã¹ã¬ããã§å®è¡ãããŸããå¥ã®ã¹ã¬ããã§å®è¡ããå¿
èŠãããå Žåãthreadã¿ã€ãã®ãªããžã§ã¯ããäœæãããŸãã
次ã®ã³ãŒãã䜿çšããŠäœæããŸãã
ã芧ã®ãšãããã¹ã¬ããã¿ã€ãã®ãªããžã§ã¯ãã§ãããå®éã«ã¯ã³ãŒãã¯å®è¡ãããŠããªãããããããä¿®æ£ããã«ã¯ãcoroutine.resumeãåŒã³åºããŠã¹ã¬ãããªããžã§ã¯ããæž¡ãå¿
èŠããããŸããã³ãŒãã®å®è¡ããã»ã¹ã§ã¯ãå®è¡ãäžæãããã°ããããŠããåãå Žæããå®è¡ãç¶ç¶ããå¿
èŠãããå ŽåããããŸãã颿°coroutine.yieldïŒïŒã¯ã颿°ã®ç¶æ
ãç¶æããªããå®è¡ãçµäºããããã«äœ¿çšãããã¹ã¬ãã颿°ã®æ¬äœå
ã®ãã©ã¡ãŒã¿ãŒãªãã§å®è¡ãããŸããã³ãŒãã®å®è¡ã«æ»ãã«ã¯ãcoroutine.resumeãåå®è¡ããå¿
èŠããããŸãããµãããã°ã©ã ã®æ¬äœã«ã«ãŠã³ã¿ãŒãå«ãæ°žé ã®ãµã€ã¯ã«ãå«ãŸããäŸãäœæããŠã¿ãŸããããåå埩ã§ãã«ãŒãã³ã¯ãµãããã°ã©ã ãçµäºããŸããããªãã¡
ã³ãŒãã¯ããã®ãªããžã§ã¯ãã«å¯ŸããŠcoroutine.resumeãå®è¡ãããåæ°ãå®éã«ã«ãŠã³ãããŸãã
䜿çšããå Žåãé倧ãªãã€ãã¹ã1ã€ãããŸããã¹ã¬ããã«è»¢éãããã³ãŒãã§ãšã©ãŒãçºçããå Žåããã®ããšã¯ããããŸããããã®ããããã®ãããªã³ãŒãã®ãããã°ã¯éåžžã«å°é£ã§ãããããžã§ã¯ãã®ç¶æ³ãæå³çã«å¶åŸ¡ããèœåã倱ããªãããã«ãã³ãŒãã®å°ããªã»ã¯ã·ã§ã³ã®ã¿ãå®è¡ã¹ã¬ããã«è»¢éããŠãã ããããŠãŒã¶ãŒããŒã¿ãå
¥å
ãŠãŒã¶ãŒããŒã¿ã¿ã€ãã¯ããã®èšèªã®ãœãŒã¹ãä»ã®èšèªãäž»ã«CïŒCïŒã§èšè¿°ããããœãŒã¹ãšãªã³ã¯ããããã«Luaã§äœ¿çšãããŸãã ããªãã¡
Luaã®Cã§èšèšãããè€éãªãŠãŒã¶ãŒæ§é ããŠãŒã¶ãŒããŒã¿ãšããŠåãå
¥ããããŸãããã®èšäºã®ã¬ãã«ã§ã¯ããã®ã¿ã€ãã¯åœ¹ã«ç«ã¡ãŸãããããã€ã§ãèªåã§åé¡ã調ã¹ãããšãã§ããŸãããããã«
Lua ,
Corona SDK ,
.