´ë¹®    
FindPage  |  TitleIndex  |  UserPreferences  |  [http]me2day  |  redpixel
RecentChanges
 


LUA Æ©Å丮¾ó

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°¡Áö µ¥ÀÌŸ ŸÀÔÀÌ ÀÖ½À´Ï´Ù.
    1. nil : ¾Æ¹«°Íµµ ¾Æ´Ñ ÅÖºó °ªÀ» ÀǹÌÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î º¯¼ö¸¦ ÃʱâÈ­ÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.
    2. number : 0, 3.1415927 °ú °°Àº »çÄ¢¿¬»êÀÌ °¡´ÉÇÑ ¸ðµç ¼ýÀÚ°ªÀ» ÀǹÌÇÕ´Ï´Ù.
    3. string : ¸»±×´ë·Î ¹®ÀÚ¿­ÀÔ´Ï´Ù. ·ç¾ÆÀÇ ±âº»Å¸ÀÔÀ̸ç, ½ºÅ©¸³Æ®»ó¿¡¼­´Â " ¹®ÀÚ·Î µÑ·¯½Î ÁöÁ¤ÇÕ´Ï´Ù. (¿¹: "1234", "redpixel1111")
    4. userdata : C/C++°úÀÇ ±³·ù¸¦ À§ÇØ Á¸ÀçÇϴ ŸÀÔÀÔ´Ï´Ù. PAGE³»¿¡¼­´Â ÇÚµéÀ̶ó°í ÁöÁ¤ÇÏ´Â °ÍµéÀÌ ¹Ù·Î ÀÌ Å¸ÀÔÀÔ´Ï´Ù. ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ¶§ Á÷Á¢ °ªÀ» Á¦¾îÇÒ °æ¿ì´Â µå¹°°í º¸Åë ¿£Áø¿¡¼­ Á¦°øµÇ´Â ÇÔ¼ö¸¦ ÅëÇØ¼­ ¼³Á¤ÇÏ°í º¯°æ, ÇØÁ¦ÇÏ°Ô µË´Ï´Ù.
    5. function : ·ç¾Æ¿¡¼­´Â ÇÔ¼öµµ ÇϳªÀÇ °ªÀ¸·Î Ãë±ÞÇÕ´Ï´Ù. Áï, functionÀ¸·Î ¼±¾ðµÇ¸é ½ÇÇ൵ µÇÁö¸¸ function ŸÀÔÀÇ º¯¼ö¿¡ ´ëÀÔµµ °¡´ÉÇÕ´Ï´Ù. (table°ú ¿¬ÇÕÇÏ¿© »ç¿ëÇÏ¸é ¸Å¿ì °­·ÂÇØÁý´Ï´Ù)
    6. 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°ú µ¿ÀÏ

3.1 ¼ýÀÚ #

  • ´ÙÀ½ ¿¹Á¦¿Í °°Àº ¿¬»êÀÌ °¡´ÉÇÕ´Ï´Ù.
a = 10 + 4 -- µ¡¼À
b = 5 * 5 -- °ö¼À
c = 10 - 40.4 -- »¬¼À
d = 55 / 5.3 -- ³ª´°¼À
e = 10 ^ 3 -- °ÅµìÁ¦°ö. °á°ú´Â 1000.
  • Âü°í : ³ª¸ÓÁö´Â math °´Ã¼ÀÇ mod() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. (math ¶óÀ̺귯¸® ÂüÁ¶)

3.1.1 ¼ýÀÚ -> ¹®ÀÚ¿­ º¯È¯ #


3.2 ¹®ÀÚ¿­ #

  • ·ç¾Æ¿¡¼­ÀÇ ¹®ÀÚ¿­³»¿¡¼­ ±ÛÀÚ¿¡ ´ëÇÑ À妽ÌÀº 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·Î °£ÁֵȴÙ.

3.2.1.4 string.len (s) #

  • ¹®ÀÚ¿­ÀÇ ±æÀ̸¦ ¹ÝȯÇÑ´Ù. ""(ºó ¹®ÀÚ¿­)Àº 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, ...) #

  • ù¹øÂ° ÀÎÀÚ(¹Ýµå½Ã ¹®ÀÚ¿­À̾î¾ß ÇÔ)·Î ÁÖ¾îÁö´Â Á¤ÀǸ¦ µû¶ó¼­ ´Ù¾çÇÑ ¼öÀÇ ÀÎÀÚµéÀ» Àß Æ÷¸ËÇÑ °á°ú¹°À» ¹ÝȯÇÑ´Ù. C ¾ð¾î¿¡¼­ printf() ÇÔ¼ö¸¦ »ý°¢ÇÏ¸é µÈ´Ù. ³»ºÎ Æ÷¸Ë·êµµ °°Áö¸¸, ´ÙÀ½°ú °°Àº Â÷À̰¡ ÀÖ´Ù.
    • *, l, L, n, p, h´Â Áö¿øµÇÁö ¾Ê´Â´Ù.
    • q ¿É¼ÇÀÌ Á¦°øµÈ´Ù. the q option formats a string in a form suitable to be safety read back by the Lua interpreter : The string is written between double quotes, and all double quotes, returns, and backslashs in the string are correctly escaped when written. For instance, the call
      string.format('%q', 'a string with "quotes" and \n new line')
      
      will produce the string:
    • "a string with \"quotes\" and \
      newline"
      
    • c, d, E, e, f, g, G, i, o, u, X, x¿Í °°Àº ¸ðµç ¿É¼ÇÀº ¼ýÀÚ¸¦ Àû¿ëÇÏ¿© »ç¿ëÇϸç, q¿Í s¸¸ ¹®ÀÚ¿­À» Àû¿ëÇÏ¿© »ç¿ëµÈ´Ù. the * modifier can be simulated by building th appropriate format string. For example, "%*g" can be simulated with "%"..width.."g".

      ÁÖÀÇ : %s·Î Æ÷¸ËµÇ´Â ¹®ÀÚ¿­ °ªÀº '³»ÀåµÈ 0' °ªÀ» Æ÷ÇÔÇÒ ¼ö ¾ø´Ù.

3.2.1.10 string.gfind (s, pat) #

3.2.1.11 string.gsub (s, pat, repl [, n]) #

repl¿¡ ÀÇÇØ¼­

4 Å×À̺í #

´ÙÀ½ÀÇ ¿¹¹®Àº "temp" ¶ó´Â table¿¡ Â÷·Ê·Î "a","b","c"¶ó´Â °ªÀ» ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
temp = {"a","b","c"}
À§ÀÇ ¿¹¹®ÀÇ Å×ÀÌºí¿¡¼­ °ªÀ» °¡Á®¿À·Á¸é. []¸¦ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¹®Àº À§¿¡¼­ ÀÛ¼ºÇÑ "temp"¿¡¼­ ù¹øÂ° °ªÀ» °¡Á®¿À´Â°Ì´Ï´Ù.
print(temp[1])

°á°ú: a

4.1 Å×ÀÌºí °ü·Ã ÇÔ¼öµé #

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 Á¦¾î¹® #

6.1 Á¶°Ç¹®°ú true/false #

Á¶°Ç¹®Àº ¹®ÀåÀÇ °á°ú·Î¼­ Âü/°ÅÁþÁß ÇϳªÀÇ °ª¸¸À» ÀǹÌÇÏ´Â ¹®ÀåÀ» ÀǹÌÇÕ´Ï´Ù. ¿©±â¿¡´Â ¸î°¡Áö ¿¬»êÀÚ°¡ ºñ±³¼ö´ÜÀ¸·Î »ç¿ëµË´Ï´Ù.
  • == : µ¿ÀϺñ±³.
  • ~= : ´Ù¸§ºñ±³. (À§¿Í ¹Ý´ë)
  • >=, <=, >, < : Å©±âºñ±³.
  • not : ºÎÁ¤. true´Â false·Î, false´Â true·Î.
  • and : "±×¸®°í"ÀÇ ÀǹÌ. µÎ°³ÀÇ Á¶°Ç¹®ÀÌ ¸ðµÎ true¿©¾ß true·Î ó¸®.
  • or : "¶Ç´Â"ÀÇ ÀǹÌ. µÎ°³ÀÇ Á¶°Ç¹®ÀÌ ¸ðµÎ false¿©¾ß false·Î ó¸®.
  • true : Ç×»ó Âü.
  • false : Ç×»ó °ÅÁþ.

6.2 if ¹® #

  • ±âº» if¹®Àº ´ÙÀ½°ú °°´Ù.
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 for ¹® #

6.5.1 ÀϹÝÀûÀÎ »ç¿ë¹ý #

  • ´Ù¸¥ ¾ð¾î¿ÍÀÇ ¸¶Âù°¡Áö·Î ÁöÁ¤µÈ ¹üÀ§¸¦ ÁöÁ¤ÇÔÀ¸·Î¼­ ¹Ýº¹¸í·ÉÀ» ¼öÇàÇÏ´Â °ÍÀÌ for¸í·ÉÀÌ´Ù. ±âº» ¹®¹ýÀº ´ÙÀ½°ú °°´Ù.


6.5.2 generic ¹Ýº¹¹® #


6.6 ÆÁ ¸ðÀ½ #


7 ±âŸ Ãß°¡ ÇÔ¼öµé #


7.1 ±âº» ÇÔ¼öµé #


7.1.1 ¸Þ¸ð¸® °ü¸® #

7.1.1.1 gcinfo() #

  • ÇöÀç ·ç¾Æ³»ÀÇ Àüü ¸Þ¸ð¸® »ç¿ë»óŸ¦ ¹ÝȯÇÕ´Ï´Ù. ù¹øÂ° °ªÀº Á¡À¯¿ë·®À̰í, µÎ¹øÂ° °ªÀº ·ç¾Æ³»¿¡ ÇÒ´çµÈ Á¾ Çã¿ë¿ë·®ÀÔ´Ï´Ù. ´ÜÀ§´Â KByteÀÔ´Ï´Ù.
  • ÀÎÀÚ´Â ¾ø½À´Ï´Ù.
  • print(gcinfo())¸¦ ÇØº¸¸é ½±°Ô °á°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.

7.1.1.2 collectgarbage() #

  • ·ç¾Æ°¡ ¸Þ¸ð¸® Á¤¸®¸¦ ÇÏ´Â ÇѰè¸Þ¸ð¸® »ç¿ë·®À» Á¤ÀÇÇÕ´Ï´Ù. (gcinfo()¿¡¼­ µÎ¹øÂ° °ªÀ» ¸»ÇÕ´Ï´Ù)
  • À̰ÍÀÌ ³ÐÀ»¼ö·Ï ÀÚµ¿À¸·Î ¸Þ¸ð¸® °ü¸®°¡ ½ÇÇàµÇ´Â È®·üÀÌ ÁÙ¾îµì´Ï´Ù.

7.2 ¼öÇÐ °ü·Ã #


7.3 (È­ÀÏ) ÀÔÃâ·Â #

7.3.1 ÇÚµé »ý¼º ÇÔ¼öµé #

7.3.1.1 io.open (filename, mode) #

È­ÀÏÀ» ¿­°í ±× È­ÀÏ¿¡ ÇØ´çÇÏ´Â È­ÀÏ ÇÚµéÀ» ¹ÝȯÇÑ´Ù. ¿¡·¯ÀÏ °æ¿ì¿¡´Â nilÀ» ¹ÝȯÇÑ´Ù. mode´Â string ÇüÀ¸·Î ÁöÁ¤ÇÏ¸ç ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
"r"Àбâ¸ðµå
"w"¾²±â¸ðµå
"a"÷ºÎ¸ðµå
"r+"°»½Å¸ðµå. Àбâ¸ðµåÁö¸¸ ÀÌÀü È­ÀÏÀº »èÁ¦.
"w+"°»½Å¸ðµå. ¾²±â¸ðµåÁö¸¸ ÀÌÀü È­ÀÏÀº »èÁ¦.
"a+"÷ºÎ¸ðµåÁö¸¸ È­ÀÏÀÇ ³¡¿¡¼­ºÎÅ͸¸ ¾²±â°¡ Çã¿ë.

b¹®ÀÚ¸¦ mode ¹®ÀÚ¿­ÀÇ ³¡¿¡ ÷°¡Çϸé ÀÌÁøÈ­ÀÏÇüÅ·Π¿­°Ô µÈ´Ù.

7.3.1.2 io.tmpfile() #

ÀÓ½ÃÈ­ÀÏÀ» »ý¼ºÇÏ°í ±× È­ÀÏ¿¡ ´ëÇÑ ÇÚµéÀ» ¹ÝȯÇÑ´Ù. ÀÓ½ÃÈ­ÀÏÀº Â÷ÈÄ ÇÁ·Î±×·¥ÀÌ Á¾·áÇϸé ÀÚµ¿À¸·Î »èÁ¦µÈ´Ù.

7.3.2 ÇÚµé »ç¿ë ÇÔ¼öµé #

fh´Â À§ÀÇ ÇÚµé ȹµæ ÇÔ¼öµéÀÇ ¹Ýȯ°ªÀÎ È­ÀÏ ÇÚµéÀ» ÀǹÌÇÑ´Ù.

7.3.2.1 fh:close() #

ÇØ´ç È­ÀÏÀ» ´Ý´Â´Ù.

7.3.2.2 fh:flush() #

ÇöÀç ¹öÆÛ¿¡ ´ã°ÜÀÖ´Â ±â·ÏÁßÀÎ µ¥ÀÌŸ¸¦ ¸ðµÎ È­ÀÏ¿¡ Àû¿ëÇÑ´Ù.

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 &#64257;le);
¡°cur¡± base is current position;
¡°end¡± base is end of &#64257;le;

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.

7.4 µð¹ö±ë °ü·Ã #


7.5 ¿î¿µÃ¼°è °ü·Ã #



EditText | FindPage | DeletePage | LikePages

Powered by MoniWiki
xhtml1 | css2 | any browser | rss
Last modified 2004-02-26 12:56:41
Loading 0.6030 sec