| |
Contents
- 1 ·ç¾Æ(lua)¶õ?
- 2 µ¥ÀÌŸ ŸÀÔ
- 3 º¯¼ö
- 3.1 ¼ýÀÚ
- 3.1.1 ¼ýÀÚ -> ¹®ÀÚ¿ º¯È¯
- 3.2 ¹®ÀÚ¿
- 3.2.1 ¹®ÀÚ¿ Á¦¾î ÇÔ¼öµé
- 3.2.1.1 string.byte (s, [, i])
- 3.2.1.2 string.char (i1, i2, ...)
- 3.2.1.3 string.find (s, pattern [, init [, plain]])
- 3.2.1.4 string.len (s)
- 3.2.1.5 string.lower(s)
- 3.2.1.6 string.rep (s, n)
- 3.2.1.7 string.sub (s, i [, j])
- 3.2.1.8 string.upper(s)
- 3.2.1.9 string.format(formatstring, e1, e2, ...)
- 3.2.1.10 string.gfind (s, pat)
- 3.2.1.11 string.gsub (s, pat, repl [, n])
- 4 Å×À̺í
- 4.1 Å×ÀÌºí °ü·Ã ÇÔ¼öµé
- 4.1.1 table.foreach(Å×À̺í, ÇÔ¼ö)
- 4.1.2 table.foreachi(Å×À̺í, ÇÔ¼ö)
- 5 ÇÔ¼ö
- 5.1 Å×ÀÌºí ¾È¿¡ ÇÔ¼ö ³»ÀåÇϱâ : ¸Þ¼Òµå
- 6 Á¦¾î¹®
- 6.1 Á¶°Ç¹®°ú true/false
- 6.2 if ¹®
- 6.3 while ¹®
- 6.4 repeat ¹®
- 6.5 for ¹®
- 6.5.1 ÀϹÝÀûÀÎ »ç¿ë¹ý
- 6.5.2 generic ¹Ýº¹¹®
- 6.6 ÆÁ ¸ðÀ½
- 7 ±âŸ Ãß°¡ ÇÔ¼öµé
- 7.1 ±âº» ÇÔ¼öµé
- 7.1.1 ¸Þ¸ð¸® °ü¸®
- 7.1.1.1 gcinfo()
- 7.1.1.2 collectgarbage()
- 7.2 ¼öÇÐ °ü·Ã
- 7.3 (ÈÀÏ) ÀÔÃâ·Â
- 7.3.1 ÇÚµé »ý¼º ÇÔ¼öµé
- 7.3.1.1 io.open (filename, mode)
- 7.3.1.2 io.tmpfile()
- 7.3.2 ÇÚµé »ç¿ë ÇÔ¼öµé
- 7.3.2.1 fh:close()
- 7.3.2.2 fh:flush()
- 7.3.2.3 fh:read(?Æ÷¸Ë¹®ÀÚ¿, ...)
- 7.3.2.4 fh:seek (whence [, offset])
- 7.3.2.5 fh:write (value1, ...)
- 7.4 µð¹ö±ë °ü·Ã
- 7.5 ¿î¿µÃ¼°è °ü·Ã
1 ·ç¾Æ(lua)¶õ? #
¿ø·¡´Â C/C++ ÇÁ·Î±×·¥¿¡ ³»ÀåµÇ¾î¼ ½ÇÇàµÇ´Â "±â»ýÀûÀÎ" ½ºÅ©¸³Æ® ¿£ÁøÀÔ´Ï´Ù¸¸, ÇöÀç pixels ÆÀ¿¡¼ °³¹ßÁßÀÎ PAGE(Pixelz Accessible Game Engine) ¿£Áø¿¡¼´Â ¸¶Ä¡ µð·ºÅÍÀÇ ¸µ°í¾ð¾î¿Í °°ÀÌ °ÔÀÓ ³»ºÎ ·ÎÁ÷ ¹× È帧À» ±â¼úÇÏ´Â ½ºÅ©¸³Æ® ¾ð¾î·Î¼ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. Ư¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.
- C/C++ÀÇ Äڵ带 À̽ÄÇϱ⠽±´Ù. À̰ÍÀº ¿£ÁøÀÛ¾÷/½ºÅ©¸³Æ®(°ÔÀÓÁ¦ÀÛ)ÀÛ¾÷ÀÇ ºÐ¾÷ȸ¦ °¡´ÉÇÏ°Ô ÇØÁÝ´Ï´Ù. (¹°·Ð, ¹Ý´ë·Î ·ç¾Æ Äڵ带 C/C++»ó¿¡¼ ½ÇÇàÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.)
- µ¿Á¾ ½ºÅ©¸³Æ® ¾ð¾î Áß¿¡¼´Â ÃÖ°ÀÇ ¼Óµµ¿Í È¿À²À» ÀÚ¶ûÇÑ´Ù.
- tableÀ̶ó´Â °·ÂÇÑ ¿¬°ü¹è¿À» Áö¿øÇÕ´Ï´Ù. À̰ÍÀº ½ºÅ©¸³Æ® Á¦À۽à ÀÚ·áÀÇ Á¤¸®¸¦ »ó´çÈ÷ ¿ëÀÌÇÏ°Ô ÇØÁÝ´Ï´Ù.
- ¹®¹ýÀÌ °£´ÜÇÕ´Ï´Ù. µ¥ÀÌŸ ŸÀÔÀÌ Á¸ÀçÇÏÁö¸¸ »ç¿ë½Ã¿¡´Â ¼ýÀÚ, ¹®ÀÚ¿ Á¤µµ¸¸ ±¸ºÐÇÏ¸é µÇ¸ç ¿Ø¸¸ÇÑ °æ¿ì´Â ÀÚµ¿À¸·Î º¯È¯À» ¼öÇàÇÑ´Ù.
¹Ý¸é¿¡ ´ÙÀ½°ú °°Àº ´ÜÁ¡µµ Á¸ÀçÇÕ´Ï´Ù.
- ½ºÅ©¸³Æ® ¾ð¾î¶ó¸é ¸ðµÎ°¡ °¡Áö°í ÀÖ´Â °³ºñÁö ÄÝ·º¼ÇÀÌ Á¸ÀçÇÕ´Ï´Ù. Áï, »ç¿ëµÇÁö ¾Ê´Â ¸Þ¸ð¸®´Â ÀÏÁ¤Á¤µµ Â÷°Ô µÇ¸é ÀÚµ¿À¸·Î ÇØÁ¦Çعö¸³´Ï´Ù. (À̰ÍÀº ¼º´ÉÀúÇÏ, Á÷Á¢ÀûÀÎ ¸Þ¸ð¸® °ü¸®ÀÇ ¾î·Á¿òµîÀÇ ´ÜÁ¡À» ¸¸µì´Ï´Ù) ´ÙÇàÈ÷, ·ç¾Æ 5.0ÀÌÈĹöÁ¯¿¡¼´Â ÀÌ °³ºñÁö Ä÷º¼Ç ó¸®ÀÇ Çѵµ¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ¾î ÀÌ Çö»óÀ» ÀϾÁö ¾Êµµ·Ï ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
- PAGE¿¡¼´Â °¡±ÞÀû ´ë¿ë·®ÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °æ¿ì(¿¹¸¦ µé¸é, ºñÆ®¸Ê µ¥ÀÌŸ ·Îµù)´Â ¸ðµÎ C/C++ ÂÊÀ¸·Î »©¹ö·È½À´Ï´Ù. Áï, ¸Þ¸ð¸® »ç¿ëÇѵµ´Â ·ç¾Æ»ó¿¡¼ ¼±¾ðÇÑ º¯¼öµé¸¸ °í·ÁÇÏ¸é µË´Ï´Ù. (¸Þ¸ð¸® °ü¸® ÂüÁ¶)
- °£´ÜÇÏ°í ½ÉÇÃÇÑ ´ë½Å, Áö¿øµÇ´Â ÇÔ¼ö°¡ Á¤¸»·Î ±âº»ÀûÀÎ °Í¹Û¿¡ ¾ø½À´Ï´Ù.
2 µ¥ÀÌŸ ŸÀÔ #
- ·ç¾Æ´Â ´ÙÀ½°ú °°Àº 6°¡Áö µ¥ÀÌŸ ŸÀÔÀÌ ÀÖ½À´Ï´Ù.
- nil : ¾Æ¹«°Íµµ ¾Æ´Ñ ÅÖºó °ªÀ» ÀǹÌÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î º¯¼ö¸¦ ÃʱâÈÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.
- number : 0, 3.1415927 °ú °°Àº »çÄ¢¿¬»êÀÌ °¡´ÉÇÑ ¸ðµç ¼ýÀÚ°ªÀ» ÀǹÌÇÕ´Ï´Ù.
- string : ¸»±×´ë·Î ¹®ÀÚ¿ÀÔ´Ï´Ù. ·ç¾ÆÀÇ ±âº»Å¸ÀÔÀ̸ç, ½ºÅ©¸³Æ®»ó¿¡¼´Â " ¹®ÀÚ·Î µÑ·¯½Î ÁöÁ¤ÇÕ´Ï´Ù. (¿¹: "1234", "redpixel1111")
- userdata : C/C++°úÀÇ ±³·ù¸¦ À§ÇØ Á¸ÀçÇϴ ŸÀÔÀÔ´Ï´Ù. PAGE³»¿¡¼´Â ÇÚµéÀ̶ó°í ÁöÁ¤ÇÏ´Â °ÍµéÀÌ ¹Ù·Î ÀÌ Å¸ÀÔÀÔ´Ï´Ù. ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ¶§ Á÷Á¢ °ªÀ» Á¦¾îÇÒ °æ¿ì´Â µå¹°°í º¸Åë ¿£Áø¿¡¼ Á¦°øµÇ´Â ÇÔ¼ö¸¦ ÅëÇØ¼ ¼³Á¤ÇÏ°í º¯°æ, ÇØÁ¦ÇÏ°Ô µË´Ï´Ù.
- function : ·ç¾Æ¿¡¼´Â ÇÔ¼öµµ ÇϳªÀÇ °ªÀ¸·Î Ãë±ÞÇÕ´Ï´Ù. Áï, functionÀ¸·Î ¼±¾ðµÇ¸é ½ÇÇ൵ µÇÁö¸¸ function ŸÀÔÀÇ º¯¼ö¿¡ ´ëÀÔµµ °¡´ÉÇÕ´Ï´Ù. (table°ú ¿¬ÇÕÇÏ¿© »ç¿ëÇÏ¸é ¸Å¿ì °·ÂÇØÁý´Ï´Ù)
- table : ·ç¾Æ¿¡¼ Á¦°øÇÏ´Â ÃÖ°ÀÇ ¹ü¿ë ÀڷᱸÁ¶ ŸÀÔÀÔ´Ï´Ù. ´Ù¸¥ ŸÀÔÀ¸·Î º¯È¯ÀÌ ºÒ°¡´ÉÇϸç, Á¶±Ý »ç¿ë¹ýÀÌ º¹ÀâÇÕ´Ï´Ù. (Â÷ÈÄ ¼³¸í)
3 º¯¼ö #
- ·ç¾Æ¿¡¼ º¯¼ö¶õ "¾î¶² °ªÀ» ´ã°í ÀÖ´Â °ÍÀÇ ¸íĪ"À¸·Î Á¤ÀÇÇÕ´Ï´Ù. Áï, ¾Õ¼ ¼³¸íÇÑ µ¥ÀÌŸ ŸÀÔÀÇ °ªÀº ¸ðµÎ º¯¼ö¿¡ ÀúÀåµË´Ï´Ù.
- ·ç¾Æ¿¡¼´Â ´ÙÁß ´ëÀÔÀÌ °¡´ÉÇÕ´Ï´Ù.
x = y = 10 -- x¿Í y¿¡ µ¿½Ã¿¡ 10À» ´ëÀÔ
z = 20
x, z = z, x -- x¿Í zÀÇ °ªÀ» ±³È¯. Áï, x´Â 20, z´Â 10ÀÌ ´ã±â°Ô µÊ.
y, z = 5, 7 -- y = 5; z = 7°ú µ¿ÀÏ
- ´ÙÀ½ ¿¹Á¦¿Í °°Àº ¿¬»êÀÌ °¡´ÉÇÕ´Ï´Ù.
a = 10 + 4 -- µ¡¼À
b = 5 * 5 -- °ö¼À
c = 10 - 40.4 -- »¬¼À
d = 55 / 5.3 -- ³ª´°¼À
e = 10 ^ 3 -- °ÅµìÁ¦°ö. °á°ú´Â 1000.
- Âü°í : ³ª¸ÓÁö´Â math °´Ã¼ÀÇ mod() ÇÔ¼ö¸¦ »ç¿ëÇØ¼ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. (math ¶óÀ̺귯¸® ÂüÁ¶)
- ·ç¾Æ¿¡¼ÀÇ ¹®ÀÚ¿³»¿¡¼ ±ÛÀÚ¿¡ ´ëÇÑ À妽ÌÀº 1ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. (C¾ð¾î¿Í °°ÀÌ 0ÀÌ ¾Æ´Ï´Ù. Çê°¥¸®Áö ¸» °Í.)
- À½¼ö Àε¦½Ìµµ Çã¿ëÇϴµ¥, À̶§¿¡´Â ¹®ÀÚ¿ÀÇ ¸Ç ³¡¿¡¼ºÎÅÍ ¿ªÀ¸·Î À妽ÌÀ» ÇÏ°Ô µË´Ï´Ù. (¿¹¸¦ µé¸é, -1Àº ¹®ÀÚ¿ÀÇ ¸Ç ¸¶Áö¸· ¹®ÀÚ¸¦ ³ªÅ¸³À´Ï´Ù.)
- µÎ°³ÀÇ ¹®ÀÚ¿ÀÇ º´ÇÕÀº ".." ¿¬»êÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½Àº µÎ°³ÀÇ ¹®ÀÚ¿À» ÇÕÃÄ Ãâ·ÂÇÏ´Â ¿¹ÀÔ´Ï´Ù.
a = "whitepixel"
b = "¹Ùº¸"
c = a..b
print(c) -- "whitepixel¹Ùº¸"°¡ Ãâ·ÂµÈ´Ù
3.2.1 ¹®ÀÚ¿ Á¦¾î ÇÔ¼öµé #
- ÀÌ ¶óÀ̺귯¸®´Â ¹®ÀÚ¿°ü¸®¸¦ À§ÇÑ °Ë»ö, ºÎºÐ ¹®ÀÚ¿ÀÇ ÃßÃâ, ÆÐÅÏ ´ëÀÔµîµîÀ» Áö¿øÇÏ´Â ÀÏ¹Ý ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù.
- ¹®ÀÚ¿ ¶óÀ̺귯¸®ÀÇ ¸ðµç ÇÔ¼ö´Â Å×À̺í string³»¿¡ ¸ðµÎ ´ã°ÜÀÖ´Ù.
3.2.1.1 string.byte (s, [, i]) #
- ¹®ÀÚ¿ sÀÇ i¹øÂ° ¹®ÀÚÀÇ ³»ºÎ ¼ýÀڷΠǥÇöµÈ(¿¹¸¦ µé¸é, ¾Æ½ºÅ° ÄÚµå) Äڵ带 ¹ÝȯÇÑ´Ù. ¸¸ÀÏ i¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é 1·Î °£ÁֵȴÙ. i´Â ¹°·Ð À½¼ö·Î ÁöÁ¤µÉ ¼ö ÀÖ´Ù.
3.2.1.2 string.char (i1, i2, ...) #
- 0 ÀÌ»óÀÇ Á¤¼ö¸¸À» ÀÎÀÚ·Î ¹Þ´Â´Ù. °¢°¢ÀÇ ¼ýÀÚ°¡ ³ªÅ¸³»´Â Äڵ忡 ÇØ´çµÇ´Â ¹®ÀÚ¸¦ ¹ÝȯÇÑ´Ù.
3.2.1.3 string.find (s, pattern [, init [, plain]]) #
- ¹®ÀÚ¿ s³»¿¡¼ pattern¿¡ °¡Àå ù¹øÂ°·Î ¸Â´Â ºÎºÐÀ» ã¾Æ ¹ÝȯÇÑ´Ù. ¸¸¾à ÇѰ³¸¦ ã¾Ò´Ù¸é find()ÇÔ¼ö´Â ÀÏÄ¡Á¡ÀÇ ½ÃÀÛ°ú ³¡À» ³ªÅ¸³»´Â sÀÇ À妽ºµé¸¦ ¹ÝȯÇÑ´Ù. ãÁö ¸øÇϸé nilÀ» ¹ÝȯÇÑ´Ù.
- ¸¸¾à pattern ¹®ÀÚ¿³»¿¡ "ĸÃÄ"¿É¼ÇÀÌ ÁöÁ¤µÇ¾î ÀÖ´Ù¸é(string.gsub ÂüÁ¶), ĸÃÄµÈ ¹®ÀÚ¿µéµµ ¹Ýȯ°ª¿¡ Æ÷ÇÔµÇ¾î ¹ÝȯµÈ´Ù.
- init ÀÎÀÚ´Â ¾îµð¼ºÎÅÍ °Ë»öÀ» ½ÃÀÛÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ s ¹®ÀÚ¿³»ÀÇ À妽º¸¦ ÁöÁ¤ÇÑ´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é 1·Î °£ÁֵǸç, À½¼öÁöÁ¤µµ °¡´ÉÇÏ´Ù.
- plain ÀÎÀÚÀÇ °ªÀ» true·Î ³õÀ¸¸é ÆÐÅÏ ¸ÅĪ ±â´ÉÀ» ²ô´Â È¿°ú°¡ ÀÖ´Ù. À̰ÍÀº ¾ÆÁÖ Æò¹üÇÑ(plain) ºÎºÐ ¹®ÀÚ¿À» °Ë»öÇÏ´Â ¸í·ÉÀÌ µÇ¸ç, pattern ÀÎÀÚ³»¿¡ µé¾îÀÖ´Â °ªµéÀº ¹«½ÃµÈ´Ù. ¸¸ÀÏ plain ÀÎÀÚ¸¦ true·Î ÁöÁ¤Çϸé initµµ ¹Ýµå½Ã ÁöÁ¤ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇØ¶ó. plainÀº ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ´ç¿¬È÷ false·Î °£ÁֵȴÙ.
- ¹®ÀÚ¿ÀÇ ±æÀ̸¦ ¹ÝȯÇÑ´Ù. ""(ºó ¹®ÀÚ¿)Àº 0À» ¹ÝȯÇÑ´Ù. ÷ºÎµÈ 0°ªµµ °¹¼ö¿¡ Æ÷ÇԵȴÙ. ±×·¯¹Ç·Î ¿¹¸¦ µé¸é "a\000b\000c"ÀÇ ±æÀÌ´Â 5°¡ µÈ´Ù.
3.2.1.5 string.lower(s) #
- ÁÖ¾îÁø ¹®ÀÚ¿À» ¸ðµÎ ¼Ò¹®ÀÚ·Î ¹Ù²Ù°í ±× °á°ú ¹®ÀÚ¿ÀÇ º¹»çº»À» ¹ÝȯÇÑ´Ù. (¿øº»Àº ¹Ù²îÁö ¾Ê´Â´Ù.) ´ë¼Ò¹®ÀÚ¿¡ ´ëÇÑ ±¸ºÐÀº ÇöÀç ·ÎÄÉÀÏ ¼³Á¤À» µû¸¥´Ù.
3.2.1.6 string.rep (s, n) #
- ¹®ÀÚ¿ s¸¦ n¹ø ¹Ýº¹ÇÏ¿© ¸ðµÎ º´ÇÕÇÑ °ªÀ» ¹ÝȯÇÑ´Ù.
3.2.1.7 string.sub (s, i [, j]) #
- ¹®ÀÚ¿ s³»¿¡¼ i¿¡¼ ½ÃÀÛÇϰí j¿¡¼ ³¡³ª´Â ºÎºÐ¿¡ ´ëÇÑ ºÎºÐ ¹®ÀÚ¿À» ¹ÝȯÇÑ´Ù. i¿Í j´Â À½¼ö ÁöÁ¤ÀÌ °¡´ÉÇÏ´Ù. j¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, -1·Î °£ÁֵȴÙ. (Áï, i¿¡¼ ³¡±îÁöÀÇ ¿µ¿ªÀ» ³ªÅ¸³»°Ô µÈ´Ù.) ¿©·¯°¡Áö ÁöÁ¤À» ¿¹¸¦ µé¸é, ¸¸ÀÏ ¹®ÀÚ¿ sÀÇ ±æÀÌ j ¸¸ÅÀÇ Á¢µÎ¾î¸¦ ¶§¾î³»·Á¸é, string.sub(s, 1, j)¶ó°í ÁöÁ¤ÇÏ¸é µÇ¸ç, string.sub(s, -i)´Â ¹®ÀÚ¿ s¿¡¼ i±æÀÌ ¸¸ÅÀÇ Á¢¹Ì¾î¸¦ ¶§³»´Â È¿°ú°¡ ÀÖ´Ù.
3.2.1.8 string.upper(s) #
- ¹®ÀÚ¿ ³»ÀÇ ¸ðµç ¼Ò¹®ÀÚµéÀ» ´ë¹®ÀÚ·Î ¹Ù²Û °á°ú¸¦ ¹ÝȯÇÑ´Ù. ´ë¼Ò¹®ÀÚ¿¡ ´ëÇÑ ±¸ºÐÀº ÇöÀç ·ÎÄÉÀÏ ¼³Á¤À» µû¸¥´Ù.
3.2.1.9 string.format(formatstring, e1, e2, ...) #
4 Å×À̺í #
´ÙÀ½ÀÇ ¿¹¹®Àº "temp" ¶ó´Â table¿¡ Â÷·Ê·Î "a","b","c"¶ó´Â °ªÀ» ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
temp = {"a","b","c"}
À§ÀÇ ¿¹¹®ÀÇ Å×ÀÌºí¿¡¼ °ªÀ» °¡Á®¿À·Á¸é. []¸¦ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¹®Àº À§¿¡¼ ÀÛ¼ºÇÑ "temp"¿¡¼ ù¹øÂ° °ªÀ» °¡Á®¿À´Â°Ì´Ï´Ù.
print(temp[1])
°á°ú: a
4.1.1 table.foreach(Å×À̺í, ÇÔ¼ö) #
- ÁöÁ¤ÇÑ 'Å×À̺í'ÀÇ °¢ °ª¿¡ ´ëÇØ °¢°¢ 'ÇÔ¼ö'¸¦ ½ÇÇàÇÕ´Ï´Ù. (»ó´çÈ÷ À¯¿ëÇÑ ÇÔ¼ö!)
- ¼ø¼´Â À妽º°ªÀÇ ¼ø¼´ë·Î ½ÇÇàµË´Ï´Ù.
- 'ÇÔ¼ö'°¡ ¸Å¹ø ½ÇÇàµÉ¶§¸¶´Ù "À妽º, °ª"À¸·Î Çѹø¿¡ 2°³¾¿ ÀÎÀÚ¸¦ ³Ñ±é´Ï´Ù.
- ´ÙÀ½Àº t1 Å×À̺íÀÇ °¢ ¿ä¼Ò¸¦ ȸ鿡 Ãâ·ÂÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. (print ´ÙÀ½¿¡ ()°¡ ¾ø´Ù´Â °Í¿¡ ÁÖ¸ñ!)
table.foreach(t1, print)
- ´ÙÀ½À» Äֿܼ¡¼ÀÇ ½ÇÇà ¿¹Á¦ÀÔ´Ï´Ù.
> t1 = {}
> t1.redpixel = 10
> t1.whitepixel = 30
> t1.raktavisa = 20
> t1.hong = 40
> table.foreach(t1, print)
raktavisa 20
hong 40
redpixel 10
whitepixel 30
4.1.2 table.foreachi(Å×À̺í, ÇÔ¼ö) #
- ÁöÁ¤ÇÑ 'Å×À̺í'ÀÇ °¢ °ª¿¡ ´ëÇØ À妽ºÀÇ ¼ø¼´ë·Î °¢°¢ 'ÇÔ¼ö'¸¦ ½ÇÇàÇÕ´Ï´Ù.
- Áï, Å×À̺íÀÇ À妽º´Â ¹Ýµå½Ã ¼ýÀÚ·Î ÁöÁ¤µÇ¾îÀÖ¾î¾ßÇϰí 1¿¡¼ n±îÁö ¼ýÀÚÀÇ °Ç³Ê¶Ü¾øÀÌ ÁöÁ¤µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù!
- foreach()¸¦ ¼ýÀÚ À妽º¿¡ ÀÇÇØ ¸¶Ä¡ for¹®Ã³·³ ½ÇÇàÇϰíÀÚ ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù.
- ´ÙÀ½Àº foreach(), foreachi()ÀÇ ºñ±³¸¦ À§ÇØ Äֿܼ¡¼ÀÇ ½ÇÇàÀ» ĸÃÄÇÑ °ÍÀÔ´Ï´Ù.
> t1 = {}
> t1[1] = 10
> t1[3] = 30
> t1[2] = 20
> t1[4] = 40
> t1[9] = 90
> t1[6] = 60
> table.foreach(t1, print)
1 10
2 20
3 30
4 40
6 60
9 90
> table.foreachi(t1, print)
1 10
2 20
3 30
4 40
5 ÇÔ¼ö #
- ÇÔ¼ö´Â ÀÏÁ¤ÇÑ ½ÇÇà´ÜÀ§¸¦ ¾î´À ¼ø°£¿¡ ÇѲ¨¹ø¿¡ ½ÇÇàÇϱâ À§ÇØ ÇϳªÀÇ °ªÀ¸·Î ¼±¾ðÇØ³õÀº °ÍÀÔ´Ï´Ù. Áï, ÇÔ¼ö°ªÀ» °¡Áö´Â º¯¼ö´Â ±× ÀÚü·Î ½ÇÇàÀÌ °¡´ÉÇÕ´Ï´Ù.
- ·ç¾Æ´Â °ªÀ» ¿©·¯°³ returnÇÒ ¼ö ÀÖ½À´Ï´Ù. (¿¹¸¦ µé¸é, a, b, c = func(d) ÀÌ·± °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.)
- ±âº» ¹®¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. ([] Ç¥½Ã´Â ¾ÈÀû¾îµµ ¹®¹ý¿¡ ¸Â´Ù´Â ÀǹÌÀÔ´Ï´Ù. Áï, ÀÎÀÚ1, ÀÎÀÚ2...´Â ÇÔ¼ö¼º°Ý¿¡ µû¶ó Àû¾îµµµÇ°í ¾ÈÀû¾îµµ µË´Ï´Ù.)
function ÇÔ¼ö¸í ([ÀÎÀÚ1, ÀÎÀÚ2, ...])
...
end
- ´ÙÀ½Àº ÀÎÀÚ·Î ³Ñ°Ü¹ÞÀº ¹®ÀÚ¿À» "¹Ùº¸"¸¦ ³¡¿¡ ºÙ¿©¼ Ãâ·ÂÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
function foolprint (i)
local tmp = i.."¹Ùº¸"
print(tmp)
end
- ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀº ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
foolprint("redpixel") -- "redpixel¹Ùº¸"¶ó°í Ãâ·ÂµË´Ï´Ù
- ÇÔ¼ö´Â ¹Ýȯ°ªÀ» °¡Áú ¼öµµ ÀÖ½À´Ï´Ù. À̶§¿¡´Â ÇÔ¼ö³»¿¡ returnÀ̶ó°í Çϴ Ű¿öµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¹°·Ð, ·ç¾Æ Ư¼º»ó ¿©·¯°³ÀÇ °ªÀ» ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù.
- ´ÙÀ½Àº µÎ°³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ´õÇÑ °á°ú¿Í °öÇÑ °á°ú¸¦ °¢°¢ ¹ÝȯÇÏ´Â ÇÔ¼öÀÇ ¿¹ÀÔ´Ï´Ù.
function calc1(x, y)
local a = x + y
local m = x * y
return a, m
end
- À§ ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëµÉ ¼ö ÀÖ°ÚÁÒ.
a, b = calc1(10, 10)
print(a, b) -- "20 100"À̶ó°í Ãâ·ÂµË´Ï´Ù.
5.1 Å×ÀÌºí ¾È¿¡ ÇÔ¼ö ³»ÀåÇϱâ : ¸Þ¼Òµå #
6.1 Á¶°Ç¹®°ú true/false #
Á¶°Ç¹®Àº ¹®ÀåÀÇ °á°ú·Î¼ Âü/°ÅÁþÁß ÇϳªÀÇ °ª¸¸À» ÀǹÌÇÏ´Â ¹®ÀåÀ» ÀǹÌÇÕ´Ï´Ù. ¿©±â¿¡´Â ¸î°¡Áö ¿¬»êÀÚ°¡ ºñ±³¼ö´ÜÀ¸·Î »ç¿ëµË´Ï´Ù.
- == : µ¿ÀϺñ±³.
- ~= : ´Ù¸§ºñ±³. (À§¿Í ¹Ý´ë)
- >=, <=, >, < : Å©±âºñ±³.
- not : ºÎÁ¤. true´Â false·Î, false´Â true·Î.
- and : "±×¸®°í"ÀÇ ÀǹÌ. µÎ°³ÀÇ Á¶°Ç¹®ÀÌ ¸ðµÎ true¿©¾ß true·Î ó¸®.
- or : "¶Ç´Â"ÀÇ ÀǹÌ. µÎ°³ÀÇ Á¶°Ç¹®ÀÌ ¸ðµÎ false¿©¾ß false·Î ó¸®.
- true : Ç×»ó Âü.
- false : Ç×»ó °ÅÁþ.
if i ~= 0 then
print("0ÀÌ ¾Æ´ÏÀÚ³ª!")
end
- ¹°·Ð, ¾Æ´Ò °æ¿ìµµ ÷ºÎÇÒ ¼ö ÀÖ´Ù. À̶§¿¡´Â else¸¦ »ç¿ëÇÑ´Ù. (elseÀ§¿¡ end¸¦ ¾²Áö ¾Ê´Â °Í¿¡ ÁÖÀÇÇÑ´Ù. end´Â ¸Ç ¸¶Áö¸·¿¡ Çѹø¸¸ ÀûÀ¸¸é µÈ´Ù.
if i == 0 then -- i°¡ 0°ú °°À¸¸é
print("0À̱º.")
else
print("0¾Æ´Ô.")
end
- ¾Æ´Ò°æ¿ì Çѹø´õ °Ë»ç¸¦ ÇÏ°í ½ÍÀ¸¸é elseif¸¦ »ç¿ëÇÑ´Ù. ¿ª½Ã °¡Àå ¸¶Áö¸·¿¡¸¸ end¸¦ ¾´´Ù´Â °Í¿¡ ÁÖÀÇ.
if i == 1 then -- i°¡ 1°ú °°À¸¸é
print("1À̱º.")
elseif i == 0 then -- ±×·¸Áö ¾Ê°í i°¡ 0°ú °°À¸¸é
print("0À̳×~")
else
print("0µµ 1µµ ¾Æ´Ï³×~")
end
6.3 while ¹® #
- ±âº» ¹®¹ýÀº ´ÙÀ½°ú °°´Ù. ÀÌ ¸í·ÉÀÇ Àǹ̴ "ÁöÁ¤ÇÑ Á¶°ÇÀÌ true°ªÀ» ¹ÝȯÇÒ µ¿¾È ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÑ´Ù"´Â ¶æÀÌ´Ù.
while Á¶°Ç¹® do
....
end
- ¿¹¸¦ µé¸é, ´ÙÀ½ÀÇ ¹®ÀåÀº "!"¸¦ 100ȸ Ãâ·ÂÇÑ´Ù.
i = 0
while i ~= 100 do -- i°¡ 100ÀÌ ¾Æ´Òµ¿¾È ¹Ýº¹ÇÑ´Ù
print("!")
i = i + 1
end
6.4 repeat ¹® #
- ±âº» ¹®¹ýÀº ´ÙÀ½°ú °°´Ù. ÀÌ ¸í·ÉÀÇ Àǹ̴ "ÁöÁ¤ÇÑ Á¶°ÇÀÌ true°¡ µÉ¶§±îÁö ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÑ´Ù"´Â ¶æÀÌ´Ù. (Áï, À§ while¹®°ú´Â ¹Ý´ëÀÇ ÀǹÌÀÌ´Ù!)
repeat
....
until Á¶°Ç¹®
- ¿¹¸¦ µé¸é, ´ÙÀ½ÀÇ ¹®ÀåÀº "redpixel"À» 50ȸ Ãâ·ÂÇÑ´Ù.
i = 50
repeat
print("redpixel")
i = i - 1
until i == 0 -- i°¡ 0ÀÌ µÉ¶§±îÁö ¹Ýº¹ÇÑ´Ù
6.5.1 ÀϹÝÀûÀÎ »ç¿ë¹ý #
- ´Ù¸¥ ¾ð¾î¿ÍÀÇ ¸¶Âù°¡Áö·Î ÁöÁ¤µÈ ¹üÀ§¸¦ ÁöÁ¤ÇÔÀ¸·Î¼ ¹Ýº¹¸í·ÉÀ» ¼öÇàÇÏ´Â °ÍÀÌ for¸í·ÉÀÌ´Ù. ±âº» ¹®¹ýÀº ´ÙÀ½°ú °°´Ù.
- ÇöÀç ·ç¾Æ³»ÀÇ Àüü ¸Þ¸ð¸® »ç¿ë»óŸ¦ ¹ÝȯÇÕ´Ï´Ù. ù¹øÂ° °ªÀº Á¡À¯¿ë·®À̰í, µÎ¹øÂ° °ªÀº ·ç¾Æ³»¿¡ ÇÒ´çµÈ Á¾ Çã¿ë¿ë·®ÀÔ´Ï´Ù. ´ÜÀ§´Â KByteÀÔ´Ï´Ù.
- ÀÎÀÚ´Â ¾ø½À´Ï´Ù.
- print(gcinfo())¸¦ ÇØº¸¸é ½±°Ô °á°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
7.1.1.2 collectgarbage() #
- ·ç¾Æ°¡ ¸Þ¸ð¸® Á¤¸®¸¦ ÇÏ´Â ÇѰè¸Þ¸ð¸® »ç¿ë·®À» Á¤ÀÇÇÕ´Ï´Ù. (gcinfo()¿¡¼ µÎ¹øÂ° °ªÀ» ¸»ÇÕ´Ï´Ù)
- À̰ÍÀÌ ³ÐÀ»¼ö·Ï ÀÚµ¿À¸·Î ¸Þ¸ð¸® °ü¸®°¡ ½ÇÇàµÇ´Â È®·üÀÌ ÁÙ¾îµì´Ï´Ù.
7.3.1.1 io.open (filename, mode) #
ÈÀÏÀ» ¿°í ±× ÈÀÏ¿¡ ÇØ´çÇÏ´Â ÈÀÏ ÇÚµéÀ» ¹ÝȯÇÑ´Ù. ¿¡·¯ÀÏ °æ¿ì¿¡´Â nilÀ» ¹ÝȯÇÑ´Ù.
mode´Â string ÇüÀ¸·Î ÁöÁ¤ÇÏ¸ç ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
| "r" | Àбâ¸ðµå |
| "w" | ¾²±â¸ðµå |
| "a" | ÷ºÎ¸ðµå |
| "r+" | °»½Å¸ðµå. Àбâ¸ðµåÁö¸¸ ÀÌÀü ÈÀÏÀº »èÁ¦. |
| "w+" | °»½Å¸ðµå. ¾²±â¸ðµåÁö¸¸ ÀÌÀü ÈÀÏÀº »èÁ¦. |
| "a+" | ÷ºÎ¸ðµåÁö¸¸ ÈÀÏÀÇ ³¡¿¡¼ºÎÅ͸¸ ¾²±â°¡ Çã¿ë. |
b¹®ÀÚ¸¦ mode ¹®ÀÚ¿ÀÇ ³¡¿¡ ÷°¡Çϸé ÀÌÁøÈÀÏÇüÅ·Π¿°Ô µÈ´Ù.
ÀÓ½ÃÈÀÏÀ» »ý¼ºÇÏ°í ±× ÈÀÏ¿¡ ´ëÇÑ ÇÚµéÀ» ¹ÝȯÇÑ´Ù. ÀÓ½ÃÈÀÏÀº Â÷ÈÄ ÇÁ·Î±×·¥ÀÌ Á¾·áÇϸé ÀÚµ¿À¸·Î »èÁ¦µÈ´Ù.
7.3.2 ÇÚµé »ç¿ë ÇÔ¼öµé #
fh´Â À§ÀÇ ÇÚµé ȹµæ ÇÔ¼öµéÀÇ ¹Ýȯ°ªÀÎ ÈÀÏ ÇÚµéÀ» ÀǹÌÇÑ´Ù.
ÇöÀç ¹öÆÛ¿¡ ´ã°ÜÀÖ´Â ±â·ÏÁßÀÎ µ¥ÀÌŸ¸¦ ¸ðµÎ ÈÀÏ¿¡ Àû¿ëÇÑ´Ù.
7.3.2.3 fh:read(?Æ÷¸Ë¹®ÀÚ¿, ...) #
ÈÀÏ ÇÚµé fh·ÎºÎÅÍ ÁÖ¾îÁø Æ÷¸Ë¿¡ µû¶ó µ¥ÀÌŸ¸¦ Àоîµé¿© ±× °ªÀ» ¹ÝȯÇÑ´Ù. Æ÷¸Ë¹®ÀÚ¿¾È¿¡ µé¾î°¡´Â ¸í·ÉÀº ´ÙÀ½°ú °°´Ù.
| "*n" | ¼ýÀÚ¸¦ Àоîµé¿© ¹ÝȯÇÑ´Ù. À̰ÍÀº number ŸÀÔÀ¸·Î ¹ÝȯÇÏ´Â À¯ÀÏÇÑ Æ÷¸ËÀÌ´Ù. |
| "*a" | ÇöÀç À§Ä¡¿¡¼ ³ª¸ÓÁö Àüü ³»¿ëÀ» Àоîµé¿© ±× ³»¿ëÀ» ¹Ýȯ. ÈÀÏÀÇ ³¡¿¡¼ ¸í·ÉÀ» ½ÇÇàÇѰŶó¸é nil¹Ýȯ. |
| "*l" | ´ÙÀ½ ÁÙÀ» ÀоîµéÀδÙ.(EOF´Â °Ç³Ê¶Ú´Ù) ÈÀÏÀÇ ³¡¿¡¼ ¸í·ÉÀ» ½ÇÇàÇѰŶó¸é nil¹Ýȯ. À̰ÍÀÌ ±âº» Æ÷¸ËÀÓ. |
| ¼ýÀÚ | ÁÖ¾îÁø ¼ýÀÚ¸¸ÅÀÇ ¹®ÀÚ¸¦ Àоîµé¿© ±× ³»¿ëÀ» ¹ÝȯÇÑ´Ù. 0À» ÁöÁ¤ÇÏ¸é ¾Æ¹«°Íµµ ÀÐÁö¾Ê°í ÅÖºó ¹®ÀÚ¿À» ¹ÝȯÇÑ´Ù. ÈÀÏÀÇ ³¡¿¡¼ ¸í·ÉÀ» ½ÇÇàÇѰŶó¸é nil¹Ýȯ. |
¿¹Á¦:
myfile = open("test.txt","r")
t1 = myfile:read(3) -- t1¿¡ 3±ÛÀÚ¸¸Å ¹®ÀÚ¿À» ÀÐ¾î¼ ±â·Ï(¹®ÀÚ¿)
n2 = myfile:read("*n") -- n1¿¡ ¼ýÀÚ¸¦ ÀÐ¾î ±× °ªÀ» ±â·Ï(¼ýÀÚ)
t3 = myfile:read() -- ÇÑÁÙÀ» ¸ðµÎ Àоî t3¿¡ ±â·Ï(¹®ÀÚ¿)
7.3.2.4 fh:seek (whence [, offset]) #
Sets and gets the file position, measured in bytes from the beginning of the file, to the position given by offset plus a base specified by the string whence, as follows:
¡°set¡± base is position 0 (beginning of the file);
¡°cur¡± base is current position;
¡°end¡± base is end of file;
In case of success, function seek returns the final file position, measured in bytes from the beginning of the file. If this function fails, it returns nil, plus a string describing the error. The default value for whence is "cur", and for offset is 0. Therefore, the call file:seek() returns the current file position, without changing it; the call file:seek("set") sets the position to the beginning of the file (and returns 0); and the call file:seek("end") sets the position to the end of the file, and returns its size.
7.3.2.5 fh:write (value1, ...) #
Writes the value of each of its arguments to the filehandle fh. The arguments must be strings or numbers. To write other values, use tostring or format before write. If this function fails, it returns nil, plus a string describing the error.
|
|