TeCGraf, PUC-Rio
Ìõ2001ǯ10·î24Æü
¤³¤Îʸ¾Ï¤Ï¡¢¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥¨¥¢Lua¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤«¤éÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¥Ý¥ë¥È¥¬¥ë¸ì¤Ç½ñ¤«¤ì¤¿Lua¤ÎÆþÌç½ñ¤ÎÏÂÌõ¤Ç¤¹¡£Waldemar Celes Son¡¢ Luiz Enrique de Figueiredo¡¢ Robert Ierusalimschy ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿ÏÀʸ"Programming in Lua - Practical Theory (version 2.1) " ¤ª¤è¤Ó "The Language of Extension Lua "¤ÎÆâÍÆ¤ò´Þ¤ó¤Ç¤ª¤ê¡¢Lua version 3.1 ¤Ø¤ÎÂбþ¤Ï Anna Magdalena Hester ¤Ë¤è¤ëʸ ½ñ¤ò¤â¤È¤Ë Robert de Beauclair Seixas ¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤·¤¿¡£ÆüËÜ¸ì¤Ø¤ÎËÝÌõ¤Ï¡¢¸¶Ãø¼Ô¤Îµö²Ä¤òÆÀ¤Æ¡¢ÂçºåÂç³ØÂç³Ø±¡¤ÎÃÓÅÄ¡¡Å°»Ö¤µ¤ó¤È¡¢»º¶Èµ»½ÑÁí¹ç¸¦µæ½ê¡¡°¤Éô¡¡¹¬³¨¤µ¤ó¤Î¶¨ÎϤΤâ¤È¤Ë¡¢»º¶Èµ»½ÑÁí¹ç¸¦µæ½ê¡¡¾åÌî¡¡Ë¡¡¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤·¤¿¡£
ftp://ftp.tecgraf.puc-rio.br/pub/lua/nocoes-3.1.pdf http://www.tecgraf.puc-rio.br/lua/ftp/nocoes-3.1.pdf
Lua¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥¨¥¢¤È¤·¤ÆÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç¤¹¤¬¡¢ TeCGraf¤¬Ãøºî¸¢¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£
ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua-3.1.tar.gz http://www.tecgraf.puc-rio.br/lua/
Copyright (c) 1994-1998 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved.
Lua¸À¸ì¤Ï¡¢C ¸À¸ì¤Ê¤É¤Ç½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤ó¤Ç¡¢½é´üÀßÄê¤äµ¡Ç½³ÈÄ¥¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë³«È¯¤µ¤ì¤¿¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç¤¹¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¡¢Lua¸À¸ì¤Î½èÍý·Ï¤òÁȤ߹þ¤à¤³¤È¤Ç¡¢¥Ñ¥é¥á¡¼¥¿ÀßÄê¤ä¥«¥¹¥¿¥Þ¥¤¥º¤·¤¿½èÍý¤òLua¸À¸ì¤Çµ½Ò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢Ã±ÆÈ¤Çưºî¤¹¤ëLua¸À¸ì¥¤¥ó¥¿¥×¥ê¥¿¤ò»È¤Ã¤Æ¡¢ÌÜŪ¤Î½èÍý¤ò¹Ô¤¦¥×¥í¥°¥é ¥à¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ Lua¸À¸ì¤Ï¡¢¤¤¤ï¤æ¤ë´Ø¿ô·¿¤Î¥×¥í¥°¥é¥à¸À¸ì¤Ç¡¢½èÍý¤Îή¤ì¤Ï¡¢Pascal¸À¸ì¤Ë»÷¤¿´ÊÁǤÊʸˡ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡Êif-elseif-else-end, while-do-end, repeat-until¡Ë¡£¤½¤·¤Æ¡¢¥Ç¡¼¥¿µ½ÒÊýË¡¤¬ËÉ٤ǡ¢ÊØÍø¤Êµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ê£±¡Ëʸ»úÎó¥Ç¡¼¥¿¤Î ½èÍý¤òÍÆ°×¤Ë¤¹¤ë¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥° ¡Ê£²¡Ë¥Æ¡¼¥Ö¥ë·¿¥Ç¡¼ ¥¿¤Ë¤è¤ë¹½Â¤²½¤·¤¿¥Ç¡¼¥¿¤Îµ½Ò ¡Ê£³¡Ë¥Æ¡¼¥Ö¥ëÆâÍÆ¤ÎưŪ¤ÊÊѹ¹¤¬²Äǽ ¡Ê£´¡Ë¼«Æ°¥á¥â¥ê³ä¤êÅö¤Æ¤È¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó ¥á ¥â¥ê¤ÎºÆÇÛÃÖ¤ä½é´ü²½¤Ê¤É¤Ï¸À¸ì½èÍý·Ï¤Î»ý¤Ä¥¬¡¼¥Ù¥¸¥³¥ì¥¯¥·¥ç¥óµ¡Ç½¤Ë¤è¤Ã ¤Æ¡¢¥á¥â¥ê¤äÊÑ¿ô¤ÎÄêµÁ¤Ê¤É¤ËÈѤ蘆¤ì¤ë¤³¤È¤Ê¤¯¡¢Â¿Íͤ˹½Â¤²½¤·¤¿¥Ç¡¼¥¿¤ò°·¤¦¥×¥í¥°¥é¥ß¥ó¥°¤¬¤Ç¤¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë·¿¥Ç¡¼¥¿¤Ï¡¢¥Ç¡¼¥¿¤òÃê¾Ý²½¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£Lua¸À¸ì¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ïɸ½à´Ø ¿ô¤ä¤½¤Î¾¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ÍøÍѤǤ¤Þ¤¹¤¬¡¢ÆÈ¼«¤Î´Ø¿ô¤òÄɲ乤뤳¤È¤â¤Ç¤¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¤ËLua¸À¸ì¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤â¤¤¤¯¤Ä¤«³«È¯¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Î㤨¤ÐCGILua ¤Ï¡¢¹âÅÙ¤ÊWeb¥µ¥¤¥È¤ò¹½ÃۤǤ¤ë¥·¥¹¥Æ¥à¤Ç¤¹¤¬¡¢Lua¸À¸ì¤Ë¤è¤ë¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¡¢Æ°Åª¤ÊHTMLʸ½ñ¤òÀ¸À®¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
http://www.lua.org
Lua¸À¸ì¤Î¥×¥í¥°¥é¥à¤Ï¡¢Ì¿Îáʸ¤È´Ø¿ô¤ÎÄêµÁ¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£¤½¤ì¤é¤Ï°ì¤Ä¤Î¼Â¹Ô´Ä¶¤ÎÃæ¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£Ì¿Îáʸ¤Ï¥Æ¥¥¹¥ÈÃæ¤Î¤É¤Î¥«¥é¥à¤Ë¤¢¤Ã¤Æ¤â¤è¤¯¡¢¥Õ¥ê¡¼¤Ê½ñ¼°¤Ç¡¢¥¹¥Ú¡¼¥¹¤ä²þ¹Ô¤Ç¶èÀڤ俤ꡢ¥»¥ß¥³¥í¥ó ( ;) ¤ÇÌÀ¼¨Åª¤Ë¶èÀڤ俤ꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢£²¤Ä¤ÎϢ³¤·¤¿¥Ï¥¤¥Õ¥ó ( -) ¤«¤é¹ÔËö¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤Ê¤ê¤Þ¤¹¡£ Lua¸À¸ì¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Ï¡¢°ì¤Ä¤Î¼Â¹Ô´Ä¶¤ËÊ£¿ô¤Î¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤¡¢¤½¤ì¤¾¤ì¤Î¥×¥í¥°¥é¥à¤Ï¡¢ÆÉ¤ß¹þ¤Þ¤ì¤¿½ç¤ËËÝÌõ¤µ¤ì¡¢¤½¤ì¤¾¤ì¤ÎÌ¿Îáʸ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢´Ø¿ôÄêµÁ¤ÎÃæ¤Ë¤¢¤ëÌ¿Îáʸ¤ÏËÝÌõ¤µ¤ì¤¿¤¢¤È¡¢´Ø¿ô¤Î¥³¡¼¥É¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢Âç°èÊÑ¿ô¤ä´Ø¿ô¤ÎÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼Â¹Ô´Ä¶¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿¤òưºî¤µ¤»¤¿¤È¤¤Ëºî¤é¤ì¡¢ÍøÍѤò½ªÎ»¤¹¤ë¤Þ¤Ç͸ú¤Ç¡¢¤½¤ì¤é¤Î´Ø¿ô¤ä¥Ç¡¼¥¿¤Ï¡¢Lua¸À¸ì¤Î¥×¥í¥°¥é¥à¤äC ¸À¸ì¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤ ¥¹¤Î¥é¥¤¥Ö¥é¥ê¤Ç¡¢Áàºî¤Ç¤¤Þ¤¹¡£ Lua¸À¸ì¤Î½èÍý·Ï¤Ç¤Ï¡¢¼Â¹Ôñ°Ì¤Î¥×¥í¥°¥é¥à¤ò¥Á¥ã¥ó¥¯¤È¸Æ¤Ó¤Þ¤¹¤¬¡¢¤½¤ì¤ò²¾ÁÛ¥Þ¥·¥ó¤Î¼Â¹Ô¥³¡¼¥É¤ËËÝÌõ¤·¡¢¤½¤Î¸å²¾ÁÛ¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¥³¡¼¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¥³¡¼¥É¤Ï¡¢´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¹â®¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤È¥¤¥ó¥¿¥×¥ê¥¿¤òÍ»¹ç¤·¤¿Êý¼°¤Ç¡¢¥×¥í¥°¥é¥à¤òÃ༡ËÝÌõ¤¹¤ë¤³¤È¤Ç¼Â¹Ô®ÅÙ¤òÄã²¼¤µ¤»¤ë¤³¤È¤Ê¤¯¡¢¥¤¥ó ¥¿¥×¥ê¥¿¤Î»È¤¤¤ä¤¹¤¤´Ä¶¤òÊݤäƤ¤¤Þ¤¹¡£
Lua¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢Âç°èÊÑ¿ô¤ÏÀë¸À¤Ê¤·¤Ç»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¡ÊÃí¡§¸å¤ÇÀâÌÀ¤¹¤ë¶É½êÊÑ¿ô¤ò»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡ËÎ㤨¤Ð¡¢¼¡¤Îʸ¤Ç¡¢¿·¤¿¤ËÊÑ¿ô a ¤ò»È¤¤¡¢2.3¤È¤¤¤¦¿ôÃÍ·¿¤Î¥Ç¡¼¥¿¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
a = 2.3
¤½¤·¤Æ¼¡¤ÎÎã¤Ç¤ÏÊÑ¿ôa¤Çʸ»úÎó¥Ç¡¼¥¿¤ò»²¾È¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£
a = "Language Lua"
Lua¸À¸ì¤Ç¤Ï¡¢ÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¤¬¡¢ÊÑ¿ô¤Ç»²¾È¤¹¤ë¥Ç¡¼¥¿¤Î¼ïÎà¤Ë¤Ï·¿¤¬¤¢¤ê¡¢ nil, ¿ôÃÍ, ʸ»úÎó, ´Ø¿ô, C ¤Î´Ø¿ô, ¥æ¡¼¥¶¥Ç¡¼¥¿¡¢ ¥Æ¡¼¥Ö¥ë¤Î£·¼ïÎढ¤ê¤Þ¤¹¡£
nil·¿¤Ï ̤ÄêµÁ¥Ç¡¼¥¿¤òɽ¤·¤Þ¤¹¡£
a = b
¤³¤Î¾ì¹ç¤Ï¡¢ÊÑ¿ô b ¤Î»²¾È¤¹¤ë¥Ç¡¼¥¿¤Ï nil ¤È¤Ê¤ë¤Î¤Ç¡¢ÊÑ¿ô a ¤Ë¤Ï nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£¼¡¤ÎÎã¤Î¤è¤¦¤Ë¡¢ nil ¤È¤¤¤¦Í½Ìó¸ì¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
a = nil
ÊÑ¿ô a ¤Ë¤Ï nil ¤È¤¤¤¦Ãͤ¬ÂåÆþ¤µ¤ì¤Þ¤¹¤¬¡¢ a ¤ËÃͤ¬Æþ¤Ã ¤Æ¤¤¤Ê¤¤¾õÂÖ¤ÈÆ±¤¸¤Ç¤¹¡£ÊÑ¿ô¤ËÃͤ¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤Ï¼¡¤Î¤è¤¦¤Ë¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤¹¤Ù¤Æ¤Î̤ÄêµÁ¤ÎÊÑ¿ô¤Ï nil ¤È ¤¤¤¦Ãͤò»ý¤Ä¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£
a == nil
Lua ¤Ç°·¤¦¿ôÃͥǡ¼¥¿¤Ï¼Â¿ô¤ÈÀ°¿ô¤Î¶èÊ̤Ϥ¢¤ê¤Þ¤»¤ó¡£¼¡¤ÎÎã¤Ç¤Ï¡¢ a¡¢ b¡¢ c¡¢d ¤Î³ÆÊÑ¿ô¤Ë¿ôÃͤòÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£
a =4 b =4.0 ¡¡ c =0.4e1 d =40e-1
Lua ¤Îʸ»úÎó¤Ï°ì½Å°úÍÑÉä(' ')¤Þ¤¿¤ÏÆó½Å°úÍÑÉä(" ")¤Ç°Ï¤Þ¤ì¤ëʸ»ú¤Î·ÏÎó ¤Ç¤¹¡£Ê¸»úÎóÃæ¤Ç¤Ï¡¢°Ê²¼¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
\n ²þ¹Ô ¡¡ \t ¿åÊ¿¥¿¥Ö ¡¡ \r Éüµ¢ ¡¡ \v ¿âľ¥¿¥Ö \xxx ʸ»ú¥³¡¼¥É¤¬ 10 ¿Ê¿ô xxx ¤Îʸ»ú ¡¡ \a ¥Ù¥ë ¡¡ \b °ìʸ»ú¸åÂà ¡¡ \f ¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É \\ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å ¡¡ \" Æó½Å°úÍÑÉä (") ¡¡ \' °ì½Å°úÍÑÉä (') ¡¡ \\ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å(\)
Æó½Å°úÍÑÉä¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎóÃæ¤Ç¤Ï¡¢°ì½Å°úÍÑÉä¤ò¥¨¥¹¥±¡¼¥×̵ ¤·¤Ç¤½¤Î¤Þ¤ÞÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤·¤«¤·¡¢¤¢¤ëʸ»úÎó¤ò°Ï¤à¤Î¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ë°úÍÑÉä¹ç¤ò¤½¤Îʸ»úÎóÃæ¤ÇÍѤ¤¤ë¤È¤¤Ë¤Ï¡¢¥¨¥¹¥±¡¼¥×¤¹¤ëɬÍפ¬¤¢¤ê ¤Þ¤¹¡£¼¡¤ÎÆó¤Ä¤Ïʸ»úÎó¤È¤·¤ÆÍ¸ú¤Ç¤¢¤ê¡¢Æ±°ì¤Îʸ»úÎó¤Ç¤¹¡£
s = "Olho d'agua" s = 'Olho d\'agua'
Æó½Å¤Î³Ñ³ç¸Ì¤âʸ»úÎó¤ò°Ï¤à¤Î¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£Æó½Å°úÍÑÉä¤ä°ì½Å°úÍÑÉä¤È°Û¤Ê¤ê¡¢¤³¤ÎÃæ¤Ç¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬²ò¼á¤µ¤ì¤Þ¤»¤ó¡£¤Þ¤¿ÆâÉô¤ËÆþ¤ì»Ò¤Îʸ»úÎó¤ò´Þ¤à¤³¤È¤â¤Ç¤¤Þ¤¹¡£
Îã:
s = [[This is a text that crosses a string more than and contains one string nested: [[nested]] in the end!]]
Lua ¤Î´Ø¿ô¤Ï¥Õ¥¡¡¼¥¹¥È¥¯¥é¥¹¤Î·¿¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢´Ø¿ô¤ÏÊÑ¿ô¤ËÂåÆþ¤·¤¿¤ê¡¢Â¾¤Î´Ø¿ô¤Ø°ú¿ô¤È¤·¤ÆÅϤ·¤¿¤ê¡¢Ìá¤êÃͤȤ·¤ÆÊÖ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£´Ø¿ô¤ÎÄêµÁ¤ÏÂç°èÊÑ¿ô¤ËÃͤòÂåÆþ¤¹¤ë¤³¤È¤ÈƱ¤¸¤Ç¡¢´Ø¿ô¤Î»ý¤Ä¥×¥í¥°¥é¥à¤¬Ãͤˤʤê¤Þ¤¹(6»²¾È)¡£ÂåÆþ¤µ¤ì¤¿Âç°èÊÑ¿ô¤Ï´Ø¿ô·¿¤ÎÃͤò»ý¤Á¤Þ¤¹¡£´Ø¿ôÄêµÁ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¡¢ÊÑ¿ô func1¤Ë´Ø¿ô·¿¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
function func1 (...) ¡¡ ... end ¡¡ ¤³¤ì¤Ï¼¡¤Î¤è¤¦¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤³¤È¤Ç¼Â¹Ô¤Ç¤¤Þ¤¹¡£ ¡¡ func1(...)
¥æ¡¼¥¶¥Ç¡¼¥¿·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ C ¸À¸ì¤ÎÊÑ¿ô¤ò Lua ¤ÎÊÑ¿ô¤ËÂåÆþ¤Ç¤¤Þ¤¹¡£ ¥æ¡¼¥¶¥Ç¡¼¥¿·¿¤Ï C ¸À¸ì¤Î void * ·¿¤ËÁêÅö¤·¡¢C ¸À¸ì¤ÎÊÑ¿ô¤ò Lua ¤ÎÊÑ¿ô¤Ç°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ÂåÆþ¤ÈÅù²ÁÀ¤ÎȽÄê°Ê³°¤Î±é»»°Ê³°¤Ï¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤¬¡¢ Lua¸À¸ì ¤È C ¤ò·ë¹ç¤¹¤ë¥×¥í¥° ¥é¥à¤ò½ñ¤¯¤Î¤ËÊØÍø¤Ç¤¹¡£¤·¤«¤·¡¢Lua ¸À¸ì¤Î¤ß¤Ç¥×¥í¥°¥é¥à¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤³ ¤È¤Ï¤Ç¤¤Þ¤»¤ó¤·¡¢Lua¸À¸ì Ãæ¤Ç¤³¤Î·¿¤ÎÃͤòľÀÜÀ¸À®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤»¤ó¡£
¥Æ¡¼¥Ö¥ë·¿¤Ï Lua ¤Ë¤ª¤±¤ë¼çÍפʷ¿¤Ç¤¹¡£¥Æ¡¼¥Ö¥ë·¿¤ÏÏ¢ÁÛÇÛÎó¤ò¼Â¸½¤·¤Æ ¤ª¤ê¡¢nil °Ê³°¤Î¾¤ÎǤ°Õ¤Î·¿¤Î¥¤¥ó¥Ç¥¯¥¹¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¥Ù¥¯¥È¥ë¡¢¥ê¥¹¥È¡¢¥ì¥³¡¼¥ÉÅù¤Î·¿¤òƱ°ì¤Î¹½Â¤¤ÇºîÀ®¤Ç¤¤Þ¤¹¡£¥Æ¡¼¥Ö¥ëÀ¸À®¤Î¹½Ê¸¤òÀâÌÀ¤¹¤ëÁ°¤Ë£±¤ÄÎã¤ò¼¨¤·¤Þ¤¹¡£°Ê²¼¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òÌÀ¼¨Åª¤ËºîÀ®¤·¤Æ a ¤ËÂåÆþ¤·¤Þ¤¹¡£
a = { }
¤³¤Î¥Æ¡¼¥Ö¥ë¤Ë¸å¤«¤é¥Õ¥£¡¼¥ë¥É¤òÄɲ乤뤳¤È¤â²Äǽ¤Ç¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Ë´Ø¤·¤Æ¤Ï7Àá¤Ç¾Ü½Ò¤·¤Þ¤¹¡£
Á°½Ò¤Î¤è¤¦¤Ë Lua ¤ÎÊÑ¿ô¤Ï·¿¤ò»ý¤¿¤º¡¢ÊÑ¿ô¤Ï¤¤¤í¤¤¤í¤Ê·¿¤ÎÃͤòÊÝ»ý¤·¤Þ¤¹¡£Lua ¤ÎÊÑ¿ô¤ÏưŪ¤Ë·¿¤Å¤±¤µ¤ì¡¢Ãͤ¬ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤ë»þ¤ËÆÃÄê¤Î£±¤Ä¤Î·¿¤ò»ý¤Á¤Þ¤¹¡£Æ±¤¸ÊÑ¿ô¤ËÊ̤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ì¤Ð¡¢ÊÑ¿ô¤Ï£² ÅÙÌܤËÂåÆþ¤µ¤ì¤¿Ãͤò»ý¤Á¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ£²ÅÙÌܤÎÂåÆþ¤ÎÁ°¤Ë¤Ï¡¢¤½¤ÎÊÑ¿ô¤Ï¤¢¤ë£±¤Ä¤Î·¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢ÂåÆþ¤Î¸å¤Ë¤ÏÊ̤η¿¤ÎÃͤò»ý¤Ã ¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ÊÑ¿ô¤¬»ý¤ÄÃͤ˱黻¤ò¹Ô¤¦¤È¤¡¢¤½¤ÎÃͤ¬¹Ô¤¦±é»»¤Ë͸ú¤Ê¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ï¼Â¹Ô»þ¤Ë¥Á¥§¥Ã¥¯¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð´Ø¿ô¤òÃͤȤ· ¤Æ»ý¤ÄÊÑ¿ô¤Ë²Ã»»¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¼Â¹Ô»þ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹(µÓÃí£²)¡£
Á°Àá¤Ç¤Ï´Êñ¤ÊÂåÆþ¤ÎÎã¤ò¼¨¤·¤Þ¤·¤¿¡£Lua ¤Ç¤Ï¿½ÅÂåÆþ¤â²Äǽ¤Ç¡¢ £±²ó¤ÎÂåÆþ¤Ç£²¤Ä¤Î°Û¤Ê¤ëÂåÆþÁàºî¤ò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
s, v = "Language Lua", 2
¤³¤ÎÎã¤Ï "Language Lua" ¤È¤¤¤¦Ê¸»úÎó¤òÊÑ¿ô s ¤ËÂåÆþ¤·¡¢ 2 ¤È¤¤¤¦¿ôÃͤòÊÑ¿ô v¤ËÂåÆþ¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢º¸ÊÕ¤ÎÊÑ¿ô¤Î¿ô¤¬±¦ÊÕ¤ÎÃͤοô¤È°Û¤Ê¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç¤Ë¤Ï º¸ÊÕ¤ÎÊÑ¿ô¤Ë nil ¤¬Æþ¤ì¤é¤ì¤ë¤«¡¢±¦ÊÕ¤ÎÃͤ¬¼Î¤Æ¤é¤ì¤Þ¤¹¡£
a, b = 2 c, d = 2, 4, 6
¤³¤ÎÎã¤Ç¤Ï a ¤Ë 2¡¢ b ¤Ë nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿ c ¤Ë¤Ï 2¡¢ d ¤Ë¤Ï 4 ¤¬ÂåÆþ¤µ¤ì¡¢6 ¤È¤¤¤¦ÃͤϼΤƤé¤ì¤Þ¤¹¡£Â¿½ÅÂåÆþ¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ÊÑ¿ô¤ÎÃͤθò´¹¤ò£±¤Ä¤ÎÌ¿Îá¤Ç½ñ¤¯¤³¤È¤¬¤Ç ¤¤Þ¤¹¡£
a, b = b, a
¤³¤ÎÎã¤Ç¤Ï a ¤¬»ý¤Ã¤Æ¤¤¤¿Ãͤ¬ b ¤Ë¡¢ b ¤¬»ý¤Ã¤Æ¤¤¤¿ÃÍ ¤¬ a ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤è¤Ã¤Æ¡¢°ì»þŪ¤ÊÊÑ¿ô¤òÍѰդ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ (µÓÃí£²: ¤³¤Î¿¶Éñ¤¤¤Ï¥¿¥°´Ø¿ô¤òÍѤ¤¤ë¤³¤È¤ÇÊѤ¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£ Lua »²¾È¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¡£)
Lua¸À¸ì¤Ë¤Ï¡¢»»½Ñ±é»»»Ò¡¢´Ø·¸±é»»»Ò¡¢ÏÀÍý±é»»»Ò¡¢Ê¸»úÎó¤òÏ¢·ë¤¹¤ë±é»»»Ò¤¬¤¢¤ê¡¢¤Þ±é»»¤¬¹Ô¤ï¤ì¤ë¤È¤¤Ë¡¢¤Ç¤¤ë¤À¤±¼«Æ°Åª¤Ë·¿ÊÑ´¹¤µ¤ì¤Þ¤¹¡£
Lua ¤Ë¤Ï°ìÈ̤λ»½Ñ±é»»»Ò¤¬¤¢¤ê¤Þ¤¹¡££²¹à±é»»»Ò¤Ë¤Ï + (²Ã»»)¡¢ - (¸º»»)¡¢ *(ÀÑ»»)¡¢ / (½ü»») ¤¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿Éä¹çȿž¤Î - ¤¬¤¢¤ê¤Þ¤¹¡£ ±é»»½ç½ø¤òÊѤ¨¤ë¤¿¤á¡¢³ç¸Ì¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ °Ê²¼¤ÏÀµ¤·¤¤¼°¤ÎÎã¤Ç¤¹¡£
a = 2 * 3.4 b = (a + 1) / 3.4 c = 2 * (-3)¡¡¡¡
»»½Ñ±é»»»Ò¤Ï¿ôÃÍ·¿¤ÎÃͤˤΤ߻ÈÍѤǤ¤Þ¤¹(¿ôÃÍ·¿¤ËÊÑ´¹²Äǽ¤Êʸ»úÎó¤ËÂФ·¤Æ¤â²Äǽ¤Ç¤¹¡£"¼«Æ°Åª¤ÊÊÑ´¹" ¤ÎÀá¤ò»²¾È)¡£±é»»»Ò ^ ¤ÏÄ̾ï¤Ï¶Ò¾è¤Ç¡¢Lua ¸À¸ì¤Î¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê¤¬»È¤ï¤ì¤Þ¤¹¡£¤³¤Î£²¹à±é»»»Ò ^ ¤Ï¹â¤¤Í¥Àè½ç°Ì¤Ç½èÍý¤µ¤ì¤Þ¤¹¤¬¡¢ÆâÉôŪ¤Ë¤Ï¡¢¥¿¥°´Ø¿ô¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹(Lua »²¾È¥Þ¥Ë¥å¥¢¥ë»²¾È)¡£
Lua ¤Ë¤Ï°Ê²¼¤Î´Ø·¸±é»»»Ò¤¬¤¢¤ê¤Þ¤¹¡£
< ¾®¤µ¤¤ > Â礤¤ <= ¾®¤µ¤¤¤«Åù¤·¤¤ >= Â礤¤¤«Åù¤·¤¤ == Åù¤·¤¤ ~= °Û¤Ê¤ë
´Ø·¸±é»»»Ò¤Ï¡¢·ë²Ì¤¬µ¶¤Î»þ nil ¤òÊÖ¤·¡¢¿¿¤Î»þ 1 ¤òÊÖ¤·¤Þ¤¹¡£
a = 4 < 3 b = 4 > 3
¤³¤ÎÎã¤Ç¤Ï a ¤Ë nil ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë 1 ¤¬ÂåÆþ¤µ¤ì¤Þ ¤¹¡£±é»»»Ò >,<,>=,<= ¤Ï¿ôÃÍ·¿¤Þ¤¿¤Ïʸ»úÎ󷿤ÎÃͤǻÈÍѤǤ¡¢¿¿µ¶¤ÎȽÃǤò¹Ô¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¡¢¤½¤ì¤Ï¥¿¥°´Ø¿ô¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤¤Þ¤¹ (Lua »²¾È¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È)¡£ Åù²Á±é»»»Ò (==) ¤Ï¡¢¤Ï¤¸¤á¤ËÈæ³Ó¤µ¤ì¤ëÃͤη¿¤¬Åù¤·¤¤¤«¤òÄ´¤Ù¡¢ °Û¤Ê¤ë¾ì¹ç¤Ë¤Ï nil ¤òÊÖ¤·¤Þ¤¹¡£·¿¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢Ãͤ¬Åù¤·¤¤¤« ¤òÄ´¤Ù¤Þ¤¹¡£ ¿ôÃͤäʸ»úÎó¤ÎÅù¤·¤µ¤ÏÄ̾ï¤Î´ð½à¤ÇȽÃǤµ¤ì¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë¡¢´Ø¿ô¡¢¥æ¡¼¥¶¥Ç¡¼¥¿¤Ï»²¾È¤¬Èæ³Ó¤µ¤ì¤Þ¤¹¡£ Î㤨¤Ð£²¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Î¾ì¹ç¡¢¤½¤Î£²¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬Æ±°ì¤ÎÂоݤǤ¢¤ë¤«¤É¤¦¤«¤ÇȽÃǤµ¤ì¤ë¤Î¤Ç¡¢Æ±¤¸Í×ÁǤò»ý¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ç¤ÏȽÃǤµ¤ì¤Þ¤»¤ó¡£ ÈóÅù²Á±é»»»Ò (~=) ¤ÏÅù²Á±é»»»Ò¤ÎµÕ¤Ç¤¹¡£
ÏÀÍý±é»»»Ò¤Ï¡É¤«¤Ä¡É¡¢¡É¤Þ¤¿¤Ï¡É¡¢¡É¤Ç¤Ê¤¤¡É¤Î£³¤Ä¤Ç¤¹¡£
and ¤«¤Ä or ¤Þ¤¿¤Ï not ¤Ç¤Ê¤¤
and ¤ä or ¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢º¸¤«¤é±¦¤Ëɾ²Á¤µ¤ì¤ë¤Î¤Ç¡¢Á´¤Æ¤Î±é»»¤¬É¾²Á¤µ¤ì¤ëÁ°¤Ë¡¢¼°¤ÎÃͤ¬·è¤Þ¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
a = 23 b = 15 c = a < 20 or b > a d = a < 20 and b > a
¤³¤ÎÎã¤Ç¤Ï¡¢ c ¤È d ¤Ï nil ¤Ë¤Ê¤ê¤Þ¤¹¡£ d ¤Î¾ì¹ç¡¢¤Þ¤º a<20 ¤¬µ¶¤È¤Ê¤ê¡¢ÏÀÍý±é»»»Ò and ¤Ë¤è¤Ã¤Æ·ë¹ç¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢b>a ¤òɾ²Á¤¹¤ëɬÍפϤʤ¯¡¢¤³¤Î¼°¤Ëµ¶¤Ë¤Ê¤ê¤Þ¤¹¡£
£²¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤¹¤ë±é»»»Ò¤Ï¡¢Lua ¤Ç¤Ï2¤Ä¤Î¥Ô¥ê¥ª¥É( ..) ¤Ç ɽ¤µ¤ì¤Þ¤¹¡£Ï¢·ë±é»»»Ò¤Ï£²¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤·¤¿Ê¸»úÎó¤òÊÖ¤·¤Þ¤¹¡£
a = "Language" b = "Lua" c = a .. " " .. b
¤³¤ÎÎã¤Ç¤Ï a ¤ÎÃͤˣ±Ê¸»ú¶õÇò¤¬Â³¤¡¢b ¤ÎÃͤ¬¤Ä¤Ê¤¬¤Ã¤¿¤â¤Î¡¢¤Ä¤Þ¤ê "Language Lua" ¤È¤¤¤¦Ê¸»úÎó¤¬ÊÑ¿ô c ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
Lua¤Ç¤Ï¼«Æ°Åª¤Ë·¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Ê¸»úÎó¤Ë»»½Ñ±é»»»Ò¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Æ¡¢¤½¤Îʸ»úÎ󤬿ôÃͤξì¹ç¡¢¿ôÃÍ·¿¤Ø¤ÎÊÑ´¹¤¬¤µ¤ì¤Æ±é»»¤µ¤ì¤Þ¤¹¤¬¡¢ÊÑ´¹¤Ç¤¤Ê¤±¤ì¤Ð¡¢¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£
b = "53" c = 2 + b¡¡¡¡
¤³¤ÎÎã¤Ç¤Ïʸ»úÎó "53" ¤Ï±é»»¤ÎÁ°¤Ë¿ôÃͤËÊÑ´¹¤µ¤ì¡¢ c ¤Ë¤Ï 55 ¤¬ ÂåÆþ¤µ¤ì¤Þ¤¹(ÊÑ¿ô b ¤Ïʸ»úÎ󷿤ÎÃͤò»ý¤Ã¤¿¤Þ¤Þ¤Ç¤¹)¡£ ¾Êý¤Ç¡¢Ê¸»úÎó¤¬É¬ÍפÊʸ̮¤Ç¿ôÃͤò»È¤Ã¤¿¾ì¹ç¤Ë¤Ï(Ï¢·ë±é»»»Ò¤Ê¤É)¡¢ ¿ôÃͤÏÂбþ¤¹¤ëʸ»úÎó¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£¿ôÃͤ¬´°Á´¤Ê¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¾®¿ô¤ä»Ø¿ô¤ÏÅÀ¤Ê¤·¤Îʸ»úÎó¤Ë¤Ê¤ê¤Þ¤¹¡£ ¿ôÃͤ¬Ê¬¿ô¤ò´Þ¤à¾ì¹ç¤Ë¤Ï¡¢¾®¿ô¤ä»Ø¿ô¤ò´Þ¤à¤³¤È¤¬¤¢¤ê¤Þ¤¹(µÓÃí£³)¡£ Î㤨¤Ð¡¢
print("result: " .. 23)
¤Ï¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£
result: 23.¡¡¡¡
tonumber ¤È¤¤¤¦Lua¸À¸ì¤Îɸ½à´Ø¿ô¤Ï¡¢²Äǽ¤Ê¾ì¹ç¤Ïʸ»úÎó¤ò¿ôÃÍ·¿¤ËÊÑ´¹¤·¤Þ¤¹¡£¿ôÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢ ɬÍפ˱þ¤¸¤Æ tostring ´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹(9»²¾È¡¢ sprintf ¤Ç %.16g ¤Î½ñ¼°¤ÇÊÑ´¹¤·¤Þ¤¹)¡£Ê£¿ô¤Î±é»»»Ò¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÍ¥Àè½ç°Ì¤¬¤¢¤ê¡¢¼¡¤Î½ç¤Ë±é»»¤µ¤ì¤Þ¤¹¡£¤Þ¤¿³ç¸Ì¤òÍѤ¤¤Æ±é»»½ç½ø¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¡¡
^ not - (ñ¹à) * / + - .. < > <= ~= == and or¡¡¡¡
Lua ¤Ë¤Ï¥×¥í¥°¥é¥à¸À¸ì¤È¤·¤Æ°ìÈÌŪ¤Ê½èÍýÀ©¸æ¤Îµ¡Ç½¤¬¤¢¤ê¡¢°ì·²¤ÎÌ¿Îá¤ò¤Þ¤È¤á¤¿¤ê¡¢¤µ¤é¤Ë²¿²ó¤â¼Â¹Ô¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Þ¤¿ Lua ¤Ç¤Ï¡¢Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Ãæ¤Î¤ß¤Ç͸ú¤Î¶É½êÊÑ¿ô¤ÎÀë¸À¤ò¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
Lua ¤Î´ðËÜŪ¤Ê¾ò·ïʸ¤Ï if ¤Ç¤¹¡£ if ʸ¤Î·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
if exp then ¡¡ ¥Ö¥í¥Ã¥¯ end¡¡¡¡
¤Þ¤¿¤Ï¡¢
if exp then ¥Ö¥í¥Ã¥¯1 else ¥Ö¥í¥Ã¥¯2 end¡¡¡¡
¤Þ¤¿¤Ï¡¢
if exp1 then ¥Ö¥í¥Ã¥¯£± elseif exp2 then ¥Ö¥í¥Ã¥¯2 ... elseif exp N then ¥Ö¥í¥Ã¥¯N else ¥Ö¥í¥Ã¥¯N + 1 end
¤Ï¤¸¤á¤Î·Á¼°¤Ç¤Ï¡¢¼° exp ¤¬ nil ¤Ç¤Ê¤¤Ãͤξì¹ç¤Ë¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤Þ ¤¹¡££²ÈÖÌܤηÁ¼°¤Ç¤Ï¡¢¼° exp ¤¬ nil ¤Î¾ì¹ç¤Ë¥Ö¥í¥Ã¥¯ 2 ¤¬¼Â¹Ô¤µ¤ì¡¢ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥Ö¥í¥Ã¥¯ 1 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡££³ÈÖÌܤηÁ¼°¤Ç¤Ï¡¢Â¿¤¯¤Î¾ò·ï¤Ë¤â¤È¤Å¤¤¤Æ if-then-elseif-then- ... -else-end ¤Ç¾ò·ïȽÃǤ¹¤ëÎó¤ò¼¨¤·¤Þ¤·¤¿¡£¾åµ¤ÎÎã¤Ç¤Ï¡¢¼° exp1 ¤¬¿¿¤Ê¤é¤Ð( nil ¤Ç̵¤¤¤Ê¤é¤Ð)¥Ö¥í¥Ã¥¯ 1 ¤¬¼Â¹Ô ¤µ¤ì¡¢¼° exp2 ¤¬¿¿¤Ê¤é¤Ð ¥Ö¥í¥Ã¥¯ 2 ¤¬¼Â¹Ô¤µ¤ì¡¢...¡¢Á´¤Æ¤Î¼°¤¬µ¶¤Ê¤é¤Ð ( nil ¤ÈÅù¤·¤¤¤Ê¤é¤Ð) ¥Ö¥í¥Ã¥¯N+1 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
Lua ¤Ë¤Ï·«¤êÊÖ¤·¤òµ½Ò¤¹¤ë¤Î¤Ë£²¼ïÎà¤ÎÌ¿Î᤬¤¢¤ê¤Þ¤¹¡£ while ¤È repeat ¤Ç¤¹¡£ while ¤Ç¤Ï·«¤êÊÖ¤·¤ÎÃæ¿È¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤ¬ÀèÆ¬¤Ç¤Ê¤µ¤ì¤Þ¤¹¡£°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
while expr do ¥Ö¥í¥Ã¥¯ end¡¡¡¡
¼° expr ¤¬¿¿¤Ç¤¢¤ë´Ö( nil ¤Ç¤Ê¤¤´Ö)¡¢¥Ö¥í¥Ã¥¯Æâ¤ÎÌ¿Î᤬¼Â¹Ô ¤µ¤ì¤Þ¤¹¡£
Îã¤È¤·¤Æ¡¢ÊÑ¿ô n ¤Î³¬¾è¤ò·×»»¤¹¤ë¼¡¤Î¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£
f = 1 --- 1 ¤Î³¬¾è i = n --- ·«¤êÊÖ¤·¤òÀ©¸æ¤¹¤ëÊÑ¿ô while i > 0 do f = f * i i = i - 1 end¡¡¡¡
·«¤êÊÖ¤·¤ò¼Â¹Ô¤·½ª¤¨¤¿¸å¤Ë¤Ï¡¢ f ¤Ï n ¤Î³¬¾è¤ÎÃͤò»ý¤Á¡¢ i ¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹(·«¤êÊÖ¤·¤Î½ªÎ»¾ò·ï)¡£
·«¤êÊÖ¤·¤ÎÃæ¿È¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤòºÇ¸å¤Ë¹Ô¤¦¤Î¤¬ repeat ¤Æ ¤¹¡£°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
repeat ¥Ö¥í¥Ã¥¯ until expr
repeat ¤Ç¤Ï¡¢¥Ö¥í¥Ã¥¯Æâ¤ÎÌ¿Îá¤ÏºÇÄã¤Ç¤â£±²ó¼Â¹Ô¤µ¤ì¤Þ¤¹ (·«¤êÊÖ¤·¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤϷ«¤êÊÖ¤·¤ÎºÇ¸å¤Ç¤·¤«¹Ô¤ï¤ì¤Þ¤»¤ó)¡£¤Þ¤¿¼° expr ¤¬¿¿¤Ç¤¢¤ë´Ö¡¢·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£ ¾åµ¤ÈƱ¤¸³¬¾è¤Î·×»»¤ò¹Ô¤¦¥×¥í¥°¥é¥à¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
f = 1 --- 1 ¤Î³¬¾è i = 1 --- ·«¤êÊÖ¤·¤ÎÀ©¸æÊÑ¿ô repeat ¡¡ f = f * i i = i + 1 until i > n¡¡¡¡¡¡¡¡
Lua ¤Ç¤ÏÊÑ¿ô¤¬¶É½êŪ¤Ç¤¢¤ë¤³¤È¤òÀë¸À¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¶É½êÊÑ¿ô¤ÎÀë¸À¤Ï¥Ö¥í¥Ã¥¯Æâ¤Î·ÏÎó¤ÎǤ°Õ¤Î°ÌÃ֤˽ñ¤¯¤³¤È¤¬¤Ç¤¡¢Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¤¬½ª¤ï¤ë¤ÈÊÑ¿ô¤â̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Âç°èÊÑ¿ô¤ÈƱ¤¸Ì¾Á°¤Î¶É½êÊÑ¿ô¤òÀë¸À¤¹¤ë¤È¡¢°ì»þŪ¤ËÂç°èÊÑ¿ô¤ò±£¤·¤Þ¤¹ (¶É½êÊÑ¿ô¤¬Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æâ¤Ç)¡£ ¥×¥í¥°¥é¥àÃæ¤Ë¤½¤ÎÊÑ¿ô̾¤¬¸½¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¶É½êÊÑ¿ô¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£¶É½êÊÑ¿ô¤ÎÀë¸À»þ¤Î½é´ü²½¤Ï¼¡¤Î¤è¤¦¤Ê¹½Ê¸¤Ë¤Ê¤ê¤Þ¤¹¡£ Îã¤È¤·¤Æ°Ê²¼¤Î¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£
a = 2 --- Âç°èÊÑ¿ô¤Ë2¤òÂåÆþ if a > 0 then local b = a --- a ¤ÎÃÍ(2)¤ò½é´üÃͤȤ·¤Æ¶É½êÊÑ¿ô b ¤òÀë¸À a = a + 1 --- Âç°èÊÑ¿ô a ¤Ë 1 ¤ò²Ã¤¨¤ë local a = b --- b ¤ÎÃͤò½é´üÃͤȤ·¤Æ¶É½êÊÑ¿ô a ¤òÀë¸À print(a) --- ¶É½êÊÑ¿ô a ¤ÎÃÍ(2)¤òɽ¼¨ end --- ¶É½êÊÑ¿ô a, b ¤Î͸úÈϰϤϤ³¤³¤Þ¤Ç ¡¡ print(a) --- Âç°èÊÑ¿ô a ¤ÎÃÍ(3)¤òɽ¼¨¡¡¡¡¡¡¡¡
£±¤Ä¤ÎÌ¿Îá¤ÇÊ£¿ô¤Î¶É½êÊÑ¿ô¤òÀë¸À¤·¤Æ½é´ü²½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
local a, b, c = 2, 5+6, -3¡¡¡¡¡¡¡¡
¤³¤ÎÎã¤Ç¤Ï¡¢ a ¤Ï 2 ¤ò½é´üÃͤȤ·¡¢ b ¤Ï 11 ¤ò¡¢ c ¤Ï -3 ¤ò¤½¤ì¤¾¤ì½é´üÃͤȤ·¤Æ¤¤¤Þ¤¹¡£½é´ü²½¤µ¤ì¤Ê¤¤¶É½êÊÑ¿ô¤ÎÃÍ¤Ï nil ¤È¤Ê ¤ê¤Þ¤¹¡£
Lua ¤Ç¤Ï´Ø¿ô¤Ï¥Õ¥¡¡¼¥¹¥È¥¯¥é¥¹¤Î·¿¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢´Ø¿ô¤ÏÊÑ¿ô¤ËÂåÆþ¤·¤¿¤ê¡¢Â¾¤Î´Ø¿ô¤Ë°ú¿ô¤È¤·¤ÆÅϤ·¤¿¤ê¡¢Ìá¤êÃͤȤ·¤ÆÊÖ¤·¤¿¤ê¤¹¤ë¤³ ¤È¤¬¤Ç¤¤Þ¤¹¡£´Ø¿ô¤òÄêµÁ¤¹¤ë»þ¤Ë¤Ï¡¢´Ø¿ô¤Î̾Á°¤ò»ý¤ÄÂç°èÊÑ¿ô¤Ë´Ø¿ô¤Îµ¡Ç½¤ò¼Â¸½¤¹¤ë¥× ¥í¥°¥é¥à¤òÂåÆþ¤·¤Þ¤¹¡£Lua ¤Î´Ø¿ô¤ÏÂç°è´Ä¶Ãæ¤ÎǤ°Õ¤Î¾ì½ê¤ÇÄêµÁ¤Ç¤¤Þ¤¹¡£´Ø¿ô¤ÎÄêµÁ¤Î°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
function name ([ °ú¿ô¤Î¥ê¥¹¥È ]) Ì¿Îá¤Î¥Ö¥í¥Ã¥¯ end
¤³¤³¤Ç name ¤Ï´Ø¿ô¤¬ÂåÆþ¤µ¤ì¤ëÂç°èÊÑ¿ô¤Î̾Á°¤Ç¤¹¡£°ú¿ô¤Î¥ê¥¹¥È¤Ï´Ø¿ôÆâ¤Î¶É½êÊÑ¿ô¤ÈƱÍͤ˰·¤ï¤ì¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤Î°ú¿ô¤Ç½é´ü²½¤µ¤ì¤Þ¤¹¡£ ´Ø¿ô¸Æ¤Ó½Ð¤·¤Î°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
name ([ °ú¿ô¤Î¥ê¥¹¥È ])
´Ø¿ô̾¤Î¸å¤Ë³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿£°¸Ä°Ê¾å¤Î°ú¿ô¤Î¥ê¥¹¥È¤ò³¤±¤Æ½ñ¤¤Þ¤¹¡£ name ¤¬´Ø¿ô¤òÃͤȤ·¤Æ»ý¤¿¤Ê¤¤¾ì¹ç(´Ø¿ô·¿¤ÎÃͤǤÏ̵¤¤¾ì¹ç)¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹(¥¿¥°´Ø¿ô»²¾È)¡£°ú¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤Þ¤º°ú¿ô¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ëɾ²Á¤µ¤ì¤Þ¤¹¡£¼¡¤Ë´Ø¿ôÄêµÁ¤Ë»ØÄꤵ¤ì¤¿²¾°ú¿ô¤È¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë»ØÄꤵ¤ì¤¿¼Â°ú¿ô¤È¤Î´Ö¤ÇÂбþ¤¬¼è¤é¤ì¤Þ¤¹ (¤³¤Î»þ¤Ë¿½ÅÂåÆþ¤ÈƱÍͤÊÄ´À°¤¬¹Ô¤ï¤ì¤ÆÂбþ¤¬·è¤Þ¤ê¤Þ¤¹)¡£ Lua ¤Ç¤Ï°ú¿ô¤ÏÃÍÅϤ·(by value)¤ÇÅϤµ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Ç¤Î¼Â°ú¿ô¤ÎÃͤ¬¡¢´Ø¿ô¤Î²¾°ú¿ô¤ÎÃͤ˥³¥Ô¡¼¤µ¤ì¤Æ´Ø¿ôÆâ¤Î¶É½êÊÑ ¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ç¤Ï¡¢°ú¿ô¤Ë»ØÄꤷ¤¿ÊÑ¿ô¤ÎÃͤϸƤӽФ·»þ¤Î¤Þ¤Þ¤ÇÊѤï¤ê¤Þ¤»¤ó¡£ Lua ¤Î´Ø¿ô¤Ï 0¸Ä¡¢1¸Ä¡¢¤Þ¤¿¤Ï¤½¤ì°Ê¾å¤ÎÃͤò return Ì¿Îá¤Ë¤è¤Ã¤ÆÊÖ¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤è¤Ã¤Æ¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤ËÊÑ¿ô¤Ø¤Î»²¾È¤ò°ú¿ô¤È¤·¤Æ ÅϤ¹É¬Íפ¬¤¢¤ê¤Þ¤»¤ó¡£´Ø¿ô¤Î¼Â¹ÔÃæ¤Ë return Ì¿Î᤬¸½¤ì¤ë¤È¡¢´Ø¿ô ¤Î¼Â¹Ô¤Ï½ªÎ»¤·¤Æ´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿°ÌÃ֤μ¡¤ËÀ©¸æ¤¬Ìá¤ê¤Þ¤¹¡£ return Ì¿Îá¤Î¸å¤Ë¤Ï£°¸Ä°Ê¾å¤Î¼°¤Î¥ê¥¹¥È¤ò½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°ìÈÌŪ ¤Î·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
return [ ¼°¤Î¥ê¥¹¥È ]
¹½Ê¸µ¬Â§¾å¡¢ return Ì¿Îá¤Ï¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤Î¤³¤È¤Ë¤è¤ê¡¢ return Ì¿Îá¤Î¸å¤ËÃÖ¤«¤ì¤Æ·è¤·¤Æ¼Â¹Ô¤µ¤ì¤Ê¤¤±£¤ì¤¿Ì¿Îá¤òËɤ°¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ return ʸ¤¬¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Ê¸Ë¡¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ´Ø¿ô¤ÎÌá¤êÃͤϡ¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤Ë½ñ¤«¤ì¤¿ÊÑ¿ô¥ê¥¹¥È¤Ë¹ç¤ï¤»¤ÆÄ´À°¤µ¤ì ¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢ºÂɸ (x, y) ¤ò¹¹¿·¤¹¤ë¼¡¤Î´Ø¿ô¤ò¼¨¤·¤Þ¤¹¡£
function translate (x, y, dx, dy) return x+dx, y+dy end
¼¡¤Î¤è¤¦¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¤È¤¹¤ë¤È¡¢
a,b = translate(20, 30, 1, 2) ¡¡
a ¤Ë¤Ï 21 (=20+1) ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 32 (=30+2) ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ ¼¡¤Î¤è¤¦¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¤Ë¤Ï¡¢
a = translate(20, 30, 1, 2¡Ë
´Ø¿ô¤Î(£²¤ÄÌܤÎ)Ìá¤êÃͤϼΤƤé¤ì¡¢21 ¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£¼¡¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð ¤·¤Î¾ì¹ç¤Ë¤Ï¡¢
a, b, c = translate(20, 30, 1, 2)
a ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 32 ¤¬ÂåÆþ¤µ¤ì¡¢ c ¤Ë¤Ï nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ Ê£¿ô¤ÎÃͤòÊÖ¤¹´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÃͤΥꥹ¥È¤ÈƱ°ì¤Ë°·¤ï¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤» ¤ó¡£Â¿½ÅÂåÆþ¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤ë»þ¤Ë¤Ï¡¢£±¤ÄÌܤÎÌá¤êÃͤÀ¤±¤¬¹Í褵¤ì¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢¾¯¤·¤Ë°Û¤Ê¤ë£²¤Ä¤ÎÎã¤òµó¤²¤Þ¤¹¡£¤Ï¤¸¤á¤Ë¡¢¼¡¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¤Ë¤Ï¡¢
a, b, c = 10, translate(20, 30, 1, 2)
a ¤Ë¤Ï 10 ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢ c ¤Ë¤Ï 32 ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥ê¥¹¥È¤ÎºÇ¸å¤Î¾ì¹ç¤Ë¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬£±¤Ä¤º¤é ¤µ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢¼¡¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢
a, b, c = translate(20, 30, 1, 2), 10
¶Ã¤¯¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢´Ø¿ô¤¬ÊÖ¤¹ÃͤθĿô¤Ë¤è¤é¤º£±¤ÄÌܤÎÊÖ¤êÃͤÀ¤±¤¬ °·¤ï¤ì(¤³¤Î¾ì¹ç21)¡¢¤â¤¦£±¤Ä¤ÎÊÖ¤êÃͤΠ32 ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹¡£¤è¤Ã¤Æ¡¢ a ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢b ¤Ë¤Ï 10 ¤¬ÂåÆþ¤µ¤ì¡¢c¤Ë¤Ïnil¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ Lua ¤Ç¤Ï²ÄÊѸĤΰú¿ô¤ò¼õ¤±¼è¤ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤¡¢¤³¤ì¤Ï´Ø¿ô ÄêµÁ¤Î°ú¿ô¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥Ô¥ê¥ª¥É¤ò£³¤Ä ( ...) ¤Ä¤±¤ë¤³¤È¤Çɽ¤»¤Þ¤¹¡£¤³¤Î·Á¼°¤Î´Ø¿ô¤Ç¤Ï¼Â°ú¿ô¤È²¾°ú¿ô¤ÎÂбþ¤Å¤±¤À¤±¤ÇÄ´À°¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£°ú¿ô¥ê¥¹¥È¤Ë»ØÄꤵ¤ì¤¿¿ô°Ê¾å¤Î¼Â°ú¿ô¤Ï¡¢ arg ¤È¤¤¤¦Ì¾Á°¤Î°ÅÌۤβ¾ °ú¿ô¤ËÂбþ¤Å¤±¤é¤ì¤Þ¤¹¡£arg¤Ï¾ï¤Ë¥Æ¡¼¥Ö¥ë¤È¤·¤Æ½é´ü²½¤µ¤ì¡¢ ¥Õ¥£¡¼¥ë¥É n ¤Ï;ʬ¤Ê°ú¿ô¤Î¿ô¡¢¥Õ¥£¡¼¥ë¥É1, 2 ... ¤Ë½ç¤Ë¼Â°ú¿ô ¤ÎÃͤ¬Âбþ¤Å¤±¤é¤ì¤Þ¤¹¡£¤Ç¤ÏÎã¤È¤·¤Æ¡¢£²¤Ä¤Î°Û¤Ê¤ë´Ø¿ôÄêµÁ¤ò¤·¤Þ¤¹¡£
function f(a, b) end function g(a, b, ...) end
¤³¤ì¤é¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼Â°ú¿ô¤È²¾°ú¿ô¤È¤Î´Ö¤Ç¼¡¤Î¤è¤¦¤ÊÂбþ¤Å¤±¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
¼Â°ú¿ô ²¾°ú¿ô f(3) a=3, b=nil f(3, 4) a=3, b=4 f(3, 4, 5) a=3, b=4 ¡¡ g(3) a=3, b=nil, arg={ n=0 } g(3, 4) a=3, b=4, arg={ n=0 } g(3, 4, 5, 8) a=3, b=4, arg={ 5,8; n=2 }
Lua ¤Î¥Æ¡¼¥Ö¥ë¤ÏÏ¢ÁÛÇÛÎó¤Ç¤¢¤ê¡¢¿ôÃͤäʸ»úÎó¤Ê¤É¤Î nil ¤ò½ü¤¯Ç¤ °Õ¤Î·¿¤ÎÃͤò¥¤¥ó¥Ç¥¯¥¹¤È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë¤Î¤³¤Î½ÀÆðÀ¤Ï¡¢ Lua Ãæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îµ½Ò¤Î´ðÁäˤʤäƤ¤¤Þ¤¹¡£
¥Æ¡¼¥Ö¥ë¤Ï»È¤¦Á°¤ËÌÀ¼¨Åª¤ËºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¡¢ { }¤Ç½é´ü²½¤ò¹Ô¤¤¤Þ¤¹¡£¼¡¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òºîÀ®¤·¡¢t ¤È¤¤¤¦ÊÑ¿ô¤ËÂåÆþ¤¹¤ëÎã¤Ç¤¹¡£
t = { }
¤³¤ì¤Ë¤è¤ê¡¢ÊÑ¿ô t ¤Ï¥Æ¡¼¥Ö¥ë·¿¤ÎÃͤò»ý¤Á¤Þ¤¹¡£ ÂåÆþ¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
t[1] = 13 ¡¡ t[45] = 56
¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥¯¥¹¤ÎÃͤ˾å¸Â¤Ï¤Ê¤¯¡¢¥Æ¡¼¥Ö¥ë¤Î¼¡¸µ¤ÏɬÍפ˱þ¤¸ ¤Æ¼«Æ°Åª¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
t["name"] = t[1] + 2
name ¤È¤¤¤¦Ê¸»úÎó¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ë¥Æ¡¼¥Ö¥ëÃæ¤ÎÃͤȤ·¤Æ¡¢ ¥¤¥ó¥Ç¥¯¥¹ 1¤ËÂбþ¤¹¤ëÃÍ(¤³¤³¤Ç¤Ï 13)¤Ë 2 ¤ò²Ã¤¨¤¿ÃͤòÂåÆþ¤·¤Þ¤¹¡£¤è¤Ã ¤Æ¥¤¥ó¥Ç¥¯¥¹"name" ¤ËÂбþ¤¹¤ëÃÍ¤Ï 15 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
t[t] = 5
¤³¤ì¤Ï t ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë·¿¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤȤ·¤Æ 5 ¤òÂåÆþ¤· ¤Æ¤¤¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë t ¤Ï¥¤¥ó¥Ç¥¯¥¹¤È¤·¤ÆÍ¸ú¤ÊÃͤǤ¹ (°ì¸«º®Í𤷤Ƥ¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï´Ö°ã¤Ã¤Æ¤¤¤Þ¤»¤ó)¡£ ¤Þ¤¿Ê¸»úÎó¤ò¥¤¥ó¥Ç¥¯¥¹¤Ë¤¹¤ë¤È¤¤Ë¤Ï¡¢¥Ô¥ê¥ª¥É¤ò»È¤Ã¤¿µË¡¤òÍѤ¤¤ë¤³¤È ¤¬¤Ç¤¤Þ¤¹¡£Î㤨¤Ð¡¢
t["version"]= 4
¤³¤ì¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£
t.version = 4
¤³¤ÎµË¡¤ÎÊý¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Î¤Ç¡¢»È¤¦¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹¡£ ¤¿¤À¤·¡¢Ê¸»úÎ󤬥¹¥Ú¡¼¥¹¤ò´Þ¤à¤È¤¤Ï¥Ô¥ê¥ª¥É¤ò»È¤Ã¤¿É½µ¤òÍѤ¤¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£Îã¡§
t["Rio De Janeiro "] = 1994
¿ôÃÍ¤ÈÆ±Íͤˡ¢Ç¤°Õ¤Î·¿¤ÎÃͤò¥Æ¡¼¥Ö¥ë¤ËÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¼¡¤Ë¼¨¤¹¤Î¤Ï¡¢¥Æ¡¼¥Ö¥ët ¤Ø¤ÎÀµ¤·¤¤ÂåÆþ¤ÎÎã¤Ç¤¹¡£
t[10] = "example" t[2.34] = 12 t.tabela, t[0] = 3, 12 t[-234] = 0 a = "Lua" t[a] = 5
ºÇ¸å¤ÎÎã¤ÏÃí°Õ¿¼¤¯¸«¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ a ¤Ï "Lua" ¤È¤¤¤¦Ãͤò »ý¤ÄÊÑ¿ô¤È¹Í¤¨¤ë¤È¡¢¤³¤ì¤Ï Lua ¤È¤¤¤¦¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤȤ·¤Æ5 ¤òÂåÆþ¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢t.a ¤Ït["a"] ¤È Åù²Á¤Ç¤¹¤¬¡¢t[a] ¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï t[a] ¤È t.Lua ¤¬Åù²Á¤Ë¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤò°ìÅÙ¤âÍ¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤(½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤)¥Æ¡¼ ¥Ö¥ëÃæ¤ÎÃÍ¤Ï nil ¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¾å¤ÎÎã¤ÎÂåÆþ¤À¤±¤ò¹Ô¤Ã¤¿¤È¤¹¤ë¤È¡¢
print(t[999)
999 ¤È¤¤¤¦¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤϽé´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤³¤ÎÌ¿Îá¤Ï nil ¤ò½ÐÎϤ·¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ëÃæ¤Ë¾¤Î¥Æ¡¼¥Ö¥ë¤òÂåÆþ¤¹¤ë¤³¤È¤â¤Ç¤¤ë¤Î¤Ç¡¢Â¿¼¡¸µÇÛÎ󤬼¸½¤Ç ¤¤Þ¤¹¡£Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
m = { } m[1] = { } m[2] = { } m[1][1] = 1.0 m[2][1] = 0.0
¤Þ¤¿¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
s = { } s.dist = { } s.dist.name = "Language Lua" s.dist.version = 4
Lua ¤Ç¤Ï¥Æ¡¼¥Ö¥ë¤ÎºîÀ®»þ¤Ë½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Î½é´ü²½¤Ï¼¡¤Î¤è¤¦¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
{ ¼°1, ¼°2, ...., ¼°N }
¤³¤Î¤è¤¦¤Ë¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë { } ¤Î´Ö¤Ë¼°¤Î¥ê¥¹¥È¤ò½ñ¤¤Þ ¤¹¡£¥ê¥¹¥È¤ÎÍ×ÁǤϤ½¤ì¤¾¤ìɾ²Á¤µ¤ì¡¢£±ÈÖÌܤÎÃͤϥ¤¥ó¥Ç¥¯¥¹ 1 ¤ËÂбþ¤Å¤±¤é¤ì¡¢£²ÈÖÌܤÎÃͤϥ¤¥ó¥Ç¥¯¥¹ 2 ¤Ë¡¢¤È¤¤¤¦¤°¤¢¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¼¡¤ÎÎã¤Ï¡¢
t = {23, 45, -7, "Lua", 6+4}
°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£
t = { } t[1] = 23 t[2] = 45 t[3] = -7 t[4] = "Lua" t[5] = 6+4
½é´ü²½¤ò¹Ô¤Ã¤¿¸å¤Ç¤â¡¢¥Æ¡¼¥Ö¥ë¤Ë¾¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¤¤Ä¤Ç¤â nil °Ê³°¤ÎǤ°Õ¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤·¤ÆÇ¤°Õ¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Î㤨¤Ð½é´ü²½¤Î¸å¤Ë¡¢¼¡¤Î¤è¤¦¤ÊÌ¿Îá¤ò¼Â¹Ô¤¹ ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
t[67] = 0 t["Lua"] = "example"
Lua ¤Ç¤Ï¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤷ¤Æ¥Æ¡¼¥Ö¥ë¤ò½é´ü²½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹ (ÌõÃí: ¥¤¥ó¥Ç¥¯¥¹ i ¤ËÂбþ¤¹¤ëÃͤò¡¢¥Æ¡¼¥Ö¥ë¤Î¥Õ¥£¡¼¥ë¥É i ¤È¤â¸Æ¤Ó¤Þ¤¹)¡£¡¡
°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡ { [ ¼°A ] = ¼°1, [ ¼°B ] = ¼°2... }
½é´ü²½¤ÎºÝ¤Ë¡¢¥¤¥ó¥Ç¥¯¥¹¤ÈÃͤÎÂФǤ¢¤ë¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥¯¥¹¤¬Ê¸»úÎó¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ëñ½ã²½¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
string1 = expr1¡¡
¤è¤Ã¤Æ¼¡¤ÎÎã¤Ï¡¢
t = { name = "Language Lua ", [1]= 3.0, [f(x)] = g(y) }
°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£
t = { } t.name = " Language Lua " t[1] = 3.0 t.[f(x)] = g(y)
ƱÍͤˡ¢¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¤¤Ä¤Ç¤â nil °Ê³°¤ÎǤ°Õ¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤· ¤ÆÇ¤°Õ¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Î㤨¤Ð½é´ü²½¤Î¸å¤Ë¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
t["Lua"]=" example "
¤³¤ì¤Þ¤Ç¤Î£²¤Ä¤Î½é´ü²½¤Î·Á¼°¤òÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ °ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
table = { ¼°¤Î¥ê¥¹¥È ; ¥Õ¥£¡¼¥ë¥É¤Î¥ê¥¹¥È }
¥»¥ß¥³¥í¥ó ¡¨ ¤Ç¶èÀÚ¤é¤ì¤¿Á°È¾¤Ë¡¢Ï¢Â³¤·¤¿¿ôÃÍ¥¤¥ó¥Ç¥¯¥¹¤Ç½é´ü²½ ¤µ¤ì¤ë¼°¤Î¥ê¥¹¥È¤ò½ñ¤¡¢¸åȾ¤Ë¥Õ¥£¡¼¥ë¥É¤Î¥ê¥¹¥È¤ò½ñ¤¤Þ¤¹¡£¼¡¤ÎÎã¤Ï¡¢
t = { nome = "Linguagem Lua", [1] = 3.0, [f(x)] = g(y) } ¡¡¡¡ t = { 23,45,-7; nome="Linguagem Lua", versao=3.0, ¡¡ [4]=80 }
°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£
t = { } t[1] = 23 t[2] = 45 t[3] = -7 t.nome = "Linguagem Lua" t.versao = 3.0 t[4] = 80
Lua ¤¬À¸À®¤¹¤ë¥¨¥é¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ë°·¤ï¤ì¤Æ¡¢¤Þ¤È¤á¤é¤ì¤Æ¥×¥í¥°¥é¥Þ¤ËÄó ¼¨¤µ¤ì¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥ëÃæ¤ä¼Â¹Ô»þ¤Ë¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢¥¨¥é¡¼½èÍý´Ø¿ô _ERRORMESSAGE ¤¬¼Â¹Ô¤µ¤ì¡¢Lua ¤ò¼Â¹Ô¤¹¤ë´Ø¿ô (lua_dofile, lua_dostring, tolua_dobuffer, lua_callfunction) ¤¬½ªÎ»¤µ¤ì¡¢¥¨¥é¡¼¤Î¾õ¶·¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£ Lua ¤Ï¥¨¥é¡¼½èÍý´Ø¿ô¤ËÂФ·¡¢¥¨¥é¡¼¤ÎÀâÌÀ¤¬½ñ¤«¤ì¤¿Ê¸»úÎó¤ò°ú¿ô¤È¤·¤ÆÍ¿ ¤¨¤Þ¤¹¡£½é´ü»þ¤Î¥¨¥é¡¼´Ø¿ô¤Ïñ¤Ë¤½¤Îʸ»úÎó¤òɸ½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£ Lua ¤Îɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¥¹¥¿¥Ã¥¯¤ÎÍúÎòÅù¤Î¾ðÊó¤òɽ¼¨ ¤¹¤ë¤¿¤á¡¢¥¨¥é¡¼½èÍý´Ø¿ô¤òºÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£Lua version 4 ¤«¤é¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¥¹¥¿¥Ã¥¯¤ÎÍúÎòÅù¤Î¾ðÊ󤬯À¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Lua¤Ç¤Ï¾ï¤ËÍøÍѤǤ¤ë´Ø¿ô¤¬¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ËÍÍѤÊÉôÉʤȤ·¤ÆÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï¼Â¹Ô´Ä¶¤¬ÊѤï¤Ã¤Æ¤â͸ú¤Ç¤¹¡£
filename ¡¡¼Â¹Ô¤¹¤ë¥Õ¥¡¥¤¥ë̾
»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òLua¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£¥¨¥é¡¼¤Ç¼Â¹Ô¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï nil ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£Àµ¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ÎÌá¤êÃͤò¤½¤Î¤Þ¤ÞÊÖ¤·¤Þ¤¹¤¬¡¢¥×¥í¥°¥é¥à¤ÎÌá¤êÃͤ¬ nil ¤Î»þ¤Ë¤Ï¡¢nil ¤Ç¤Ê¤¤²¿¤é¤«¤ÎÃͤˤʤê¤Þ¤¹¡£
(Îã)
if not dofile("bib.lua") then print("It is not possible to open the library of functions") end¡¡
ʸ»úÎó¤òLua¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¼Â¹Ô¤·¡¢¤½¤ÎÌá¤êÃͤòÊÖ¤·¤Þ¤¹¡£¼Â¹Ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ïnil¤È¤Ê¤ê¡¢À®¸ù¤·¤·¤Ænil¤òÊÖ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢nil¤Ç¤Ê¤¤²¿¤é¤«¤ÎÃͤˤʤê¤Þ¤¹¡£ (Îã) botao1,botao2,...¤È¤¤¤¦Ì¾Á°¤Î¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤ò½¸Ì󤹤롣
i = 1; botao = { } b = dostring("return botao"..i ) while b do botao[i] = b i = i + 1 b = dostring("return botao"..i) end
¥Æ¡¼¥Ö¥ë¤È¤½¤Î¥¤¥ó¥Ç¥¯¥¹¤ò»ØÄꤷ¤Æ¡¢¼¡¤ÎÍ×ÁǤΥ¤¥ó¥Ç¥¯¥¹¤ÈÃͤòÊÖ¤·¤Þ¤¹¡£index¤Ënil¤ò»ØÄꤹ¤ë¤È¡¢°ìÈֺǽé¤ÎÍ×ÁǤΥ¤¥ó¥Ç¥¯¥¹¤ÈÃͤ¬ÆÀ¤é¤ì¤Þ¤¹¡£¤³¤ì¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤòÎóµó¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥¤¥ó¥Ç¥¯¥¹¤Ï¿ôÃͤξ¤Ë¡¢Ê¸»úÎó¤Ê¤É¾¤Î¥Ç¡¼¥¿·¿¤ò»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£Ìá¤êÃͤϡ¢¥¤¥ó¥Ç¥¯¥¹¤ÈÃͤÎ2¤Ä¤Ç¡¢¼¡¤ÎÍ×ÁǤ¬¤Ê¤¯¤Ê¤ë¤Ènil¤Ë¤Ê¤ê¤Þ¤¹¡£Lua¸À¸ì¤Ç¤Ï¡¢Ê¸»úÎó¤Î¥¤¥ó¥Ç¥¯¥¹¤ò»È¤¦¤È¤¤âÀë¸À¤Ê¤É¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥¯¥¹¤¬Â¸ºß¤·¤Ê¤¤¤È¤¤Ë¤Ï¤½¤ÎÃͤÏnil¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢next()¤Ç¤Ï¸ºß¤¹¤ë¤â¤Î¤À¤±¤ò½ç¤ËÆÀ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Í×ÁǤνçÈ֤ϡ¢Lua¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤Æ¡¢ºîÀ®¤·¤¿½ç¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
(Îã) ¥Æ¡¼¥Ö¥ët¤ÎÆâÍÆ¤ò¤¹¤Ù¤Æ¥×¥ê¥ó¥È¤¹¤ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
field,value = next(t, nil) --¥Æ¡¼¥Ö¥ë¤ÎºÇ½é¤ÎÍ×ÁÇ while field do --¸ºß¤¹¤ë¤Þ¤Ç print(field, "=", value) --ÆâÍÆ¤ò½ÐÎÏ field,value = next(t, field) --¼¡¤ÎÍ×ÁÇ end
Âç°èÊÑ¿ô¤ò¤¹¤Ù¤ÆÎóµó¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡££±¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¡¢¤Ä¤Þ¤êname¤Ç»ØÄꤷ¤¿Âç°èÊÑ¿ô¤Î¼¡¤ÎÂç°èÊÑ¿ô¤òÆÀ¤Þ¤¹¡£nil¤ò»ØÄꤹ¤ë¤È¡¢°ìÈֻϤá¤ÎÂç°èÊÑ¿ô¤¬ÆÀ¤é¤ì¤Þ¤¹¡£Ìá¤êÃͤϡ¢ÊÑ¿ô¤Î̾Á°¤È¤½¤ÎÃͤΣ²¤Ä¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë Âç°èÊÑ¿ô¤ò¤¹¤Ù¤ÆÎóµó¤¹¤ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
name,value = nextvar(nil) --ÀèÆ¬¤Ë¤¢¤ëÂç°èÊÑ¿ô while name do --name¤¬Â¸ºß¤¹¤ì¤Ð print(name, "=", value) --¤½¤ÎÆâÍÆ¤òɽ¼¨ name,value = nextvar(name) --¼¡¤ÎÂç°èÊÑ¿ô end
°ú¿ô¤Ë»ØÄꤵ¤ì¤¿Âоݤη¿¤òʸ»úÎó¤ÇÊÖ¤·¤Þ¤¹¡£Ìá¤êÃͤϡ¢"nil", "number", "string", "table", "function", "userdata" ¤Î¤É¤ì¤«¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
t = { } print(type(2.4),type("Alo"),type(t),type(t[1]),type(print)
¡Ê·ë²Ì¡Ë
number string table nil function
ʸ»úÎ󷿤ˤʤäƤ¤¤ë¿ô»ú¤ò¿ôÃͥǡ¼¥¿¤ËÊÑ´¹¤·¤Þ¤¹¡£ÊÑ´¹¤Ç¤¤Ê¤«¤Ã¤¿»þ¤Ïnil¤òÊÖ¤·¤Þ¤¹¡££±£°¿Ê¿ô°Ê³°¤Î»þ¤Ï¡¢£²ÈÖÌܤΥѥé¥á¡¼¥¿¤Ë£²¡Á£³£²¤Î¿ôÃͤò»ØÄꤷ¤Þ¤¹¡£
¡ÊÎã¡Ë
print(tonumber("34.56 "), tonumber("3.2 X"), tonumber(2))
¡Ê·ë²Ì¡Ë
34.56 nil 2
¿ôÃͥǡ¼¥¿¤òʸ»úÎó¥Ç¡¼¥¿¤ËÊÑ´¹¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
print(tostring(3.2), tostring({10,20,30}),tostring(print))
¡Ê·ë²Ì¡Ë
3.2 table: 0x324a43 function: 0x63ed21
Í¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤òɸ½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£½ÐÎϤνñ¼°¤òÀ°¤¨¤ë¤Ë¤Ïformat( )´Ø¿ô¤ò»È¤¤¤Þ¤¹¡£
¡ÊÎã¡Ë
print( 2*3+2 ) print( "valor = ", valor )
¼Â¹Ô»þ¥¨¥é¡¼¤òÀ¸À®¤·¡¢Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òɸ½à½ÐÎϤ˽ÐÎϤ·¡¢¼Â¹Ô¤òÃæÃǤ·¤Þ¤¹¡£
Í¿¤¨¤é¤ì¤¿´Ø¿ô¤ò¡¢£²ÈÖÌܤΰú¿ô¤Ç¼Â¹Ô¤·¤Þ¤¹¡£arg ¤Ï¥Æ¡¼¥Ö¥ë¤Ç¡¢¿ôÃͤΥ¤¥ó¥Ç¥¯¥¹¤Î½ç¤Ë°ú¿ô¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£°ú¿ô¤ÎɬÍפʤ¤¤È¤¤Ë¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òÍ¿¤¨¤Þ¤¹¡££³ÈÖÌܤΥѥé¥á¡¼¥¿¤Ë"pack"¤òÍ¿¤¨¤ë¤È¡¢´Ø¿ô¤ÎÌá¤êÃͤϥơ¼¥Ö¥ë¤ËÆþ¤ì¤é¤ì¤Þ¤¹¡£
a = call( sin, {5} )Ÿþ a = 0.871557 a = call( max, {1,4,5;n=2}) a = 4 t = { x=1 } a = call( next,{t,nil;n=2},"pack" ) a={"x",1;n=2}
°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤¬nil¤Ê¤é¤Ð¥¨¥é¡¼¤Ë¤Ê¤ê¡¢£²ÈÖÌܤΥѥé¥á¡¼¥¿¤ËÍ¿¤¨¤¿Ê¸»úÎó¤ò¥×¥ê¥ó¥È¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
assert( readfrom(FILE),"cannot open" .. FILE )
Lua¤Ç¤Ï¡¢¿ô³Ø¡¢Ê¸»úÎó¡¢¥Õ¥¡¥¤¥ëÆþ½ÐÎϤΣ³¤Ä¤Î´ðËܥ饤¥Ö¥é¥ê´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
ʸ»ú¥¥ã¥é¥¯¥¿¤ÎÎó¤Ë¤è¤ëʸ»úÎó¤ò°·¤¦ÈÆÍѤδؿô¤È¤·¤Æ¡¢Ê¸»úÎó¤ÎŤµ¤òÄ´¤Ù¤¿¤ê¡¢Éôʬʸ»úÎó¤ò¤È¤Ã¤¿¤ê¤¹¤ë´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£
ʸ»úÎóstr¤ÎÃæ¤Ë¡¢pattern¤Ç»ØÄꤷ¤¿Ê¸»úÎó¤òõ¤·¡¢½é¤á¤Î¾ì½ê¤È½ª¤ï¤ê¤Î¾ì½ê¤Î£²¤Ä¤Î¿ôÃͤ¬Ìá¤êÃͤˤʤê¤Þ¤¹¡£init¤Ç¸¡º÷¤ò»Ï¤á¤ëºÇ½é¤Î¾ì½ê¤ò»ØÄê¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢plain¤Çnil°Ê³°¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤Îµ¡Ç½¤ò»È¤ï¤º¤Ëñ½ã¤Êʸ»úÎóÈæ³Ó¤ò¹Ô¤¤¤Þ¤¹¡£Ê¸»úÎ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ïnil¤¬Ìá¤êÃͤȤʤê¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Ë¥¥ã¥×¥Á¥ã¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¥¥ã¥×¥Á¥ã¤ËÂбþ¤¹¤ëʸ»úÎó¤¬Ìá¤êÃͤËÄɲ䵤ì¤Þ¤¹¡£
¡ÊÎã¡Ë
i, f = strfind("Linguagem Lua 3.0", "Lua") print( i, f )
¡Ê·ë²Ì¡Ë
11 13,
¡ÊÎã¡Ë
data = "13/4/1997" i, f, day, month, year = strfind(data, "(%d*)/(%d*)/(%d*)") print( day,month, year )
¡Ê·ë²Ì¡Ë
13, 4, 1997.
ʸ»ú¤Î¼ïÎà¤òɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Îµ½Ò¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£
x (x ¤¬ ^$()%.[]*+-? ¤Î¤É¤Îʸ»ú¤Ç¤â¤Ê¤¤¾ì¹ç) ʸ»ú x ¤½¤Î¤â¤Î¤òɽ¤·¤Þ¤¹¡£ %x¡¡ £ø¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ä¿ô»ú°Ê³°¤Îµ¹æ¤Ç¡¢¤½¤Îµ¹æ¼«ÂΤòɽ¤·¤Þ¤¹¡£ÆÃ¼ìʸ»ú¤òɽ¤¹¤Î¤Ë»È¤¤¤Þ¤¹¡£ . ¤¹¤Ù¤Æ¤Îʸ»ú %a ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú %A ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú°Ê³° %d ¿ôÃÍ¡Ê10¿Ê¿ô¡Ë %D ¿ôÃͰʳ° %l ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¾®Ê¸»ú %L ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¾®Ê¸»ú°Ê³° %s ¶õÇòʸ»ú¡Ê¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢quebras de linha) %S ¶õÇòʸ»ú°Ê³° %u ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÂçʸ»ú %U ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÂçʸ»ú°Ê³° %w ʸ»ú¤È¿ô»ú %W ʸ»ú¤È¿ô»ú°Ê³° [ʸ»ú¥Ñ¥¿¡¼¥óÎó] »ØÄꤷ¤¿Ê¸»ú¤Î¤¦¤Á¤Î¤É¤ì¤« [^ʸ»ú¥Ñ¥¿¡¼¥óÎó] »ØÄꤷ¤¿Ê¸»ú¤Î¤É¤ì¤Ç¤â¤Ê¤¤
¥Ñ¥¿¡¼¥óÍ×ÁǤϡ¢¼¡¤Î¤¤¤º¤ì¤«¤Ç¤¹¡£
¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó
¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë * ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤·¤Þ¤¹¡£¥Þ¥Ã¥Á¤¹¤ëÈϰϤ¬¤Ç¤¤ë¤À¤±Ä¹¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë - ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤Ç¤¹¤¬¡¢ * ¤È¤Ï°Û¤Ê¤ê¡¢°ìÃפ¹¤ëÈϰϤ¬¤Ç ¤¤ë¤À¤±Ã»¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë + ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 1 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤·¤Þ¤¹¡£°ìÃפ¹¤ëÈϰϤ¬¤Ç¤¤ë¤À¤±Ä¹¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë ? ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 1 ²ó¤Þ¤¿¤Ï0 ²ó¤Î½Ð¸½¤òɽ¤·¤Þ¤¹¡£
¡¦% n¡¡¤³¤³¤Ç n ¤Ï 1 ¤«¤é 9 ¤Þ¤Ç¤Î¿ôÃͤǡ¢n ÈÖÌܤΥ¥ã¥×¥Á¥ã¤·¤¿Éôʬʸ»úÎó¤òɽ¤·¤Þ¤¹¡£
¡¦%b xy¡¡¤³¤³¤Ç¡¢ x ¤È y ¤Ï°Û¤Ê¤ëʸ»ú¤Ç¡¢ x ¤Ç»Ï¤Þ¤ê y ¤Ç½ª¤ï¤ëʸ»úÎó¤òɽ¤·¤Þ¤¹¡£Î㤨¤Ð¡¢ %b() ¤Ï³ç¸Ì¤ÎÂбþ¤¬Àµ¤·¤¯¼è¤ì¤¿Ê¸»úÎó¤Ë°ìÃפ·¤Þ¤¹¡£
ʸ»ú¥Ñ¥¿¡¼¥ó¤Î·ÏÎó¤Ç¤Ò¤È¤Ä¤Î¥Ñ¥¿¡¼¥ó¤òɽ¸½¤Ç¤¤Þ¤¹¡£¥Ñ¥¿¡¼¥óÀèÆ¬¤Î ^ ¤ÏÂоÝʸ»úÎó¤ÎÀèÆ¬¤ò°ÕÌ£¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥óºÇ¸å¤Î $ ¤ÏÂоÝʸ»úÎó¤Î ºÇ¸å¤ò°ÕÌ£¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥óÃæ¤Î¾¤Î°ÌÃÖ¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤Ï¡¢^ ¤ä $ ¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤¿¤º¡¢¤½¤ì¼«¿È¤òɽ¤·¤Þ¤¹¡£
¥Ñ¥¿¡¼¥óÃæ¤Ë¤Ï³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥Ñ¥¿¡¼¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤Î±¾ì¹ç¤Ï¡¢¥¥ã¥×¥Á¥ã¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Þ¥Ã¥Á¥ó¥°¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¥¥ã¥×¥Á¥ã¤ÎÉôʬ¤Ë¥Þ¥Ã¥Á¤·¤¿Ê¸»úÎó¤ÏÊݸ¤µ¤ì¡¢¸å¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥¥ã¥×¥Á¥ã¤Ïº¸³ç¸Ì¤ËÂбþ¤¹¤ëÈֹ椬¤Ä¤±¤é¤ì¤Þ¤¹¡£
Î㤨¤Ð¡¢"(a*(.)%w(%s *))"¤Ç¤Ï¡¢a*(.)%w(%s *)¤Ë¹çÃפ¹¤ëÉôʬʸ»ú¤¬Â裱ÈÖÌܤΥ¥ã¥×¥Á¥ã¤Ë¤Ê¤ê¡¢£²ÈÖÌܤË(.)¤Ë¹çÃפ·¤¿°ì¤Ä¤Îʸ»ú¡¢%s *¤¬£³ÈÖÌܤˤʤê¤Þ¤¹¡£
¡ÊÎã¡Ë
function name (arg1,arg2) (function %s*(%a+)(%b()))¡¡ ¡¡
¤Ë¤è¤Ã¤Æ¡¢Lua¸À¸ì¤Î´Ø¿ôÄêµÁ¤Ï´Ø¿ô¤Î̾Á° (%a+)¤È¡¢¤½¤Î¥Ñ¥é¥á¡¼¥¿¥ê¥¹¥È(%b()¤ò¥¥ã¥×¥Á¥ã¤È¤·¤ÆÆÀ¤Æ¤¤¤Þ¤¹¡£
ʸ»úÎóstr¤ÎŤµ¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
print(strlen("Linguagem Lua"))
¡Ê·ë²Ì¡Ë
13.
ʸ»úÎóstr¤Î£ìÈÖÌܤ«¤é£êÈÖÌܤޤǤÎʸ»ú¤Ç¿·¤¿¤Ëʸ»úÎó¥Ç¡¼¥¿¤òºî¤Ã¤ÆÊÖ¤·¤Þ¤¹¡£j ¤¬¤Ê¤¤¾ì¹ç¤ÏºÇ¸å¤Îʸ»ú¤Þ¤Ç¤È¤Ê¤ê¤Þ¤¹¡£Ê¸»úÎó¤ÎºÇ¸å¤ò ¡Ý£±¤È¤·¤Æ¿ô¤¨¤Æ¡¢£ê¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£Î㤨¤Ð¡¢strsub(str, 1, j) ¤Î¾ì¹ç¤Ï£êÈÖÌܤÎʸ»ú¤Þ¤Ç¤òÊÖ¤·¡¢strsub(str, i) ¤Ï£éÈÖÌܤ«¤é¸å¤Îʸ»ú¤òÊÖ¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
a = "Linguagem Lua" print(strsub(a, 11))
¡Ê·ë²Ì¡Ë
Lua.
ʸ»úÎóstr¤ò¾®Ê¸»ú¤Ë¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
print(strlower("Language Lua"))
¡Ê·ë²Ì¡Ë
language lua
ʸ»úÎóstr¤òÂçʸ»ú¤Ë¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
print(strupper("Linguagem Lua"))
¡Ê·ë²Ì¡Ë
LANGUAGE LUA.
ʸ»úÎóstr¤òn²ó·«¤êÊÖ¤·¤¿Ê¸»úÎó¤òºî¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
print(strrep( "0123456789", 2 ))
¡Ê·ë²Ì¡Ë
01234567890123456789
ʸ»úÎóstr¤ÎlÈÖÌܤÎʸ»ú¤ÎASCII¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
print(ascii("abc",2))
¡Ê·ë²Ì¡Ë
42.
ʸ»úÎóformatstring¤Ë½¾¤Ã¤Æ¤½¤ì°Ê¹ß¤Îexp1,exp2,¤ÎÃͤò»ØÄꤷ¤¿½ñ¼°¤Çʸ»úÎó¤ËÊÑ´¹¤·¤Þ¤¹¡£½ñ¼°¤Ï%¤Ë³¤±¤ÆÉ½¼¨¤Î·¿¤ò¼¨¤¹¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤ò¤Ä¤±¤¿·Á¼°¤ÇC¸À¸ì¤Ë¤ª¤±¤ëprintf¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ÊÑ´¹¤·¤¿Ê¸»úÎó¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
name = "Car" id = 123 cmd = format( "insert into table (name, id) values (%s , %d)" , name, id )
SQL¤ÎÁÞÆþ¥³¥Þ¥ó¥É(insert)¤È¤Ê¤ëʸ»úÎó¤ò¡¢¥Æ¡¼¥Ö¥ë¤Îid¤È̾Á°¤ò»È¤Ã¤Æºî¤Ã¤Æ¤¤¤ëÎã¤Ç¤¹¡£
print( format( "%c", 65 ) )
¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥Ç¡¼¥¿¤Îʸ»ú¤òɽ¤¹ANSI(American NationalStandard Code for Information Interchange) ¤Î¥³¡¼¥ÉÊÑ´¹¤¬²Äǽ¤Ç¤¹¡£
¡ÊÎã¡Ë
a = 123.456 print ( format( "%+010.2f", a ) )
¡Ê·ë²Ì¡Ë
+000123.46. ¡¡ %s %q ¤Ç¤Ï %s ʸ»úÎó %q ʸ»úÎó¤ò°úÍÑÉä¤Ç¤«¤³¤à %c ʸ»ú %d £±£°¿ÊÀ°¿ô %i %d¤ÈƱ¤¸ %u inteiro sem sinal %o £¸¿ÊÀ°¿ô %x £±£¶¿ÊÀ°¿ô(abcdef) %X £±£¶¿ÊÀ°¿ô(ABCDEF) %f ¼Â¿ô [-]ddd.ddd %e ¼Â¿ô [-]d.ddd e[+/-]ddd %g ¼Â¿ô %f¤Þ¤¿¤Ï %e %E ¼Â¿ô %e¤ÈƱ¤¸¤À¤¬Âçʸ»ú¤ÎE¤ò»È¤¦ %% %ʸ»ú¤½¤Î¤â¤Î
½ñ¼°À©¸æ¤Î¤¿¤á¤Ë¡¢Àê¤á¤ëʸ»úÎó¤ÎºÇ¾®¥µ¥¤¥º¤ò½¤¾þ»Ò¤È¤·¤Æ%¤Î¤¢¤È¤Ë»ØÄꤷ¤Þ¤¹¡£(former: %10d)Éé¤ÎÃͤϡ¢º¸¤Å¤á¤ò»ØÄꤷ¤Þ¤¹¡£¡Ü¤òÉÕ¤±¤ë¤È¿ôÃͤÎÁ°¤Ë¡Ü¤«¡Ý¤òÉÕ¤±¤Þ¤¹¡£¤µ¤é¤Ë¥Ô¥ê¥ª¥É¤Ë³¤±¤Æ¡¢¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤ò»ØÄê¤Ç¤¤Þ¤¹¡£(former: %.2f). 0¤ò»ØÄꤹ¤ë¤È¿ôÃͤκ¸¤Ë£°¤òÄɲä·¤Þ¤¹¡£
ʸ»úÎóstr¤«¤é¥Ñ¥¿¡¼¥óʸ»úÎópattern¤òõ¤·¡¢Ê¸»úÎórepl¤ÇÃÖ´¹¤·¤Þ¤¹¡£repl¤Ë´Ø¿ô¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¡¢´Ø¿ô¤ò¼Â¹Ô¤·¤¿·ë²Ì¤ÇÃÖ´¹¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¤Ïstrfind¤Î»þ¤ÈƱ¤¸¤Ç¡¢¥Ñ¥¿¡¼¥ó¤¬¸«¤Ä¤«¤ë¤´¤È¤ËÃÖ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¤¬¡¢£´ÈÖÌܤ˻ØÄꤷ¤¿£î¤ÇÃÖ´¹²ó¿ô¤ÎºÇÂç¤ò»ØÄê¤Ç¤¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¤¬¥¥ã¥×¥Á¥ã¤ò´Þ¤ó¤Ç¤¤¤ë¤È¡¢¤½¤ì¤é¤Ïreplʸ»úÎóÃæ¤Ë¤¢¤ë%1,%2¤ËŸ³«¤µ¤ì¤Þ¤¹¡£repl¤¬´Ø¿ô¤Î»þ¤Ï¡¢¥¥ã¥×¥Á¥ã¤µ¤ì¤¿Ê¸»úÎ󤬴ؿô¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£Ìá¤êÃͤϡ¢ÃÖ´¹¤·¤¿Ê¸»úÎó¤È¡¢ÃÖ´¹¤·¤¿²ó¿ô¤Ç¤¹¡£
¡ÊÎã¡Ë
print( gsub( "Linguagem Lua 3.0", " ", "+" ) )
¡Ê·ë²Ì¡Ë
Linguagem+Lua+3.0.
¡ÊÎ㣲¡Ë
texto = " Linguagem Lua 3.0 " print( gsub( texto, " *", " " ) )
¡Ê·ë²Ì£²¡Ë ÃÖ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¤Î¤Ç¡¢
"Linguagem Lua 3.0 ".
¡ÊÎ㣳¡Ë¥¥ã¥×¥Á¥ãµ¡Ç½
lista = [[ arq.txt texto.txt r.txt ]] print( gsub( lista, "(.*)%.txt\n", "move %1.txt %1.bak\n" ))
¡Ê·ë²Ì¡Ë
move arq.txt arq.bak move texto.txt texto.bak move r.txt r.bak
¿ôÃͥǡ¼¥¿¤ÎºÇÂçÃÍ¡¢ºÇ¾®ÃͤòÆÀ¤ë´Ø¿ô¤Ç¤Ï¡¢²ÄÊѸĿô¤Î°ú¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
min( expr1, expr2, ..., exprN) max( expr1, expr2, ..., exprN)
¡ÊÎã¡Ë
print(min(23, 5, 123, 3)) print(max(23, 5, 123, 3))
¡Ê·ë²Ì¡Ë
3 123.
C ¸À¸ì¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê¤âÍøÍѤǤ¤Þ¤¹¡£³ÑÅÙ¤Îñ°Ì¤Ï¥é¥¸¥¢¥ó¤Ç¤Ï¤Ê¤¯Å٤Ǥ¹¡£
log(value) logaritmo de value na base e log10(value) logaritmo de value da base 10 cos(angle) cosseno de angle (especificado em graus) sin(angle) seno de angle (especificado em graus) tan (angle) tangente de angle (especificado em graus) acos(value) arco cosseno, em graus, de value asin(value) arco seno, em graus, de value atan(value) arco tangente, em graus, de valuea tan2(y,x) arco tangente, em graus, de y/x deg(angle) converte angle (especificado em radianos) para graus rad(angle) converte angle (especificado em graus) para radianos abs(value) valor absoluto de value sqrt(value) raiz quadrada de value ceil(value) inteiro imediatamente inferior a value floor(value) inteiro imediatamente superior a value mod(value,div) resto da divisµÐ inteira de value por div
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë¤¢¤ë¤¤¤ÏÁõÃÖ¤«¤é¤Î¥Ç¡¼¥¿¤ÎÆþ½ÐÎϤò¹Ô¤¦¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£lua¸À¸ì¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤È¸Æ¤Ð¤ì¤ëÊÑ¿ô¤Ç¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆþÎϤȽÐÎϤΣ²¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ï¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤È¤·¤Æ (_ INPUT)¤È(_ OUTPUT)¤ÎÂç°èÊÑ¿ô¤¬»È¤ï¤ì¤Þ¤¹¡£C ¸À¸ì¤Ç¤Îɸ½àÆþ½ÐÎϤǤ¢¤ë stdin¡¢stdout¡¢stderr ¤â¡¢Âç°èÊÑ¿ô _ STDIN¡¢_STDOUT ¡¢_ STDERR¡¡¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£½é´ü¾õÂ֤ǤÏ_ INPUT ¤Ï_STDIN ¤Ë¡¢ _ OUTPUT ¤Ï_ STDOUT¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò¥Ç¥Õ¥©¥ë¥È¤ÎÆÉ¤ß¼è¤êÍѤ˥ª¡¼¥×¥ó¤·¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò_INPUT¤ËÀßÄꤷ¤Þ¤¹¡£filename¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿»þ¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤Æ¥Ç¥Õ¥©¥ë¥È¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ò_STDIN¤ËÌᤷ¤Þ¤¹¡£Ìá¤êÃͤȤ·¤Æ¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬ÆÀ¤é¤ì¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤¤Ïnil¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î£²¤Ä¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
¡ÊÎã¡Ë
readfrom( "c:\\txt\\b.txt" )
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤·¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò_OUTPUT¤ËÀßÄꤷ¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¤½¤ÎÆâÍÆ¤Ï¾Ãµî¤µ¤ì¤Æ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤¤Ïnil¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î£²¤Ä¤¬ÆÀ¤é¤ì¤Þ¤¹¡£filename¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿»þ¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï¥¯¥í¡¼¥º¤µ¤ì¤Æ¥Ç¥Õ¥©¥ë¥È¤Î½ÐÎϤò_STDIN¤ËÌᤷ¤Þ¤¹
¡ÊÎã¡Ëa.txt ¥Õ¥¡¥¤¥ë¤ò¿·µ¬ºîÀ®¤·¤ÆÊ¸»ú¤ò½ñ¤¯¡£¤¹¤Ç¤Ë¸ºß¤¹¤ë¤È¡¢²¿¤â¤·¤Ê¤¤¡£
if writeto( "a.txt" ) then write( "result is 123" ) writeto( ) end
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤òÄɲýñ¤¹þ¤ß¤Ç¥ª¡¼¥×¥ó¤·¡¢writeto()¤ÈƱÍͤˤ·¤Þ¤¹¡£´û¸¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï¾Ãµî¤µ¤ì¤Þ¤»¤ó¡£
¡ÊÎã¡Ëa.txt¤È¤¤¤¦¥Õ¥£¥¢¥ë¤Ëʸ»ú¤òÄɵ¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤¬¤Ê¤±¤ì¤Ð²¿¤â¤·¤Ê¤¤¡£
if appendto( "a.txt") then write( "result is 123" ) appendto () end
¸½ºß¤ÎÆþÎÏÁõÃÖ_ INPUT¤«¤é¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ nil¤Ë¤Ê¤ê¤Þ¤¹¡£format¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«¤Îʸ»úÎó¤Ç¤¹¡£
"*l", £±¹Ôñ°Ì "*n", ñ¸ìñ°Ì "*w", ¥Õ¥¡¥¤¥ë¤¹¤Ù¤Æ "*n" ¿ôÃͥǡ¼¥¿
»ØÄê¤Î¤Ê¤¤¤È¤¤Ï¹Ôñ°Ì¤Ë¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¿ôÃͤò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥Ð¥¤¥È¿ô¤ÎÆÉ¤ß¹þ¤ß¤ò¤·¤Þ¤¹¡£¡ÊÌõ¼ÔÃí¡§¥Ð¡¼¥¸¥ç¥ó3.2¤Þ¤ÇÍøÍѤµ¤ì¤Æ¤¤¤¿¥Ñ¥¿¡¼¥ó¤Ç¤ÎÆÉ¤ß¹þ¤ß¤ÏÇѻߤµ¤ì¤Þ¤·¤¿¡Ë
¡ÊÎã¡Ë¥Õ¥¡¥¤¥ë¤Î¿ôÃͤò¤¹¤Ù¤ÆÆÉ¤ó¤Ç¥Æ¡¼¥Ö¥ë¤ËÆþ¤ì¤Þ¤¹¡£
data = { } i = 1readfrom( "datas.txt" ) repeat data[i] = read( "*n" ) i = i + 1 until data == nil readfrom()
¸½ºß¤Î½ÐÎÏÁõÃÖ (_OUTPUT).¤ËÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿value1, value2, ... ¤ò½ÐÎϤ·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤¤ËÌá¤êÃͤÏnil¤È¤Ê¤ê¡¢À®¸ù¤¹¤ë¤È¤½¤ì°Ê³°¤ÎÃͤȤʤê¤Þ¤¹¡£print()¤È°ã¤Ã¤Æ¡¢¥Ç¡¼¥¿¤Ï¿ôÃͤ¢¤ë¤¤¤Ïʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
write( "a = ", a )
filename¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤¤ÏÌá¤êÃͤ¬nil¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
a, error = remove( "c:\doc\arq.txt" ) if not a then print( error ) end
name1¤Î¥Õ¥¡¥¤¥ë̾¤òname2¤ËÊѹ¹¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿»þ¤ÎÊÖ¤êÃͤÏnil¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
a, error = rename( "arq.txt", "arquivo.txt" ) if not a then print( error ) end
arq.txt ¤ò arquivo.txt ¤ËÊѹ¹¤·¤Þ¤¹¡£Êѹ¹¤Ç¤¤Ê¤±¤ì¤Ð¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£
°ì»þ¥Õ¥¡¥¤¥ë¤È¤·¤Æ°ÂÁ´¤Ë»È¤¨¤ë¥Õ¥¡¥¤¥ë̾¤òÊÖ¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£
¡ÊÎã¡Ëºî¶È¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤ß½àÈ÷¤¹¤ë
filename = tmpname( ) writeto( filename )
¸½ºß¤ÎÆüÉդȻþ¹ï¤ò¼èÆÀ¤·¤ÆÊ¸»úÎó¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£½ñ¼°¤Ï¡¢unix¤Îstrftime()´Ø¿ô¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¾Êά¤¹¤ë¤È¤½¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç°ìÈÌŪ¤Ê·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£
%a ¾Êά·Á¤ÎÍËÆü %A ´°Á´¤ÊÍËÆü %b ¾Êά·Á¤Î·î %B ·î %c °ìÈÌŪ¤ÊÆüÉդȻþ¹ï %d ÆüÉÕ 01 ¡Á 31 %H »þ 00 ¡Á 23 %I »þ´Ö 01 ¡Á 12 %j º£Ç¯¤ÎÄÌ»»Æü¿ô 001 ¡Á 366 %m ·î¡¡01 ¡Á12 %M ʬ 00 ¡Á 59 %P ¸áÁ°¸á¸å¡¡am/pm %S Éà 00 ¡Á 60 %U º£Ç¯¤ÎÄÌ»»½µ¿ô¡¡ÆüÍˤ«¤é 00 ¡Á 53 %w º£½µ¤ÎÆüÍˤ«¤é¤ÎÆü¿ô¡¡ 0 ¡Á 6 %W º£Ç¯¤ÎÄÌ»»½µ¿ô·îÍˤ«¤é 00 ¡Á 53 %x °ìÈÌŪ¤ÊÆüÉÕɽµ %X °ìÈÌŪ¤Ê»þ´Öɽµ %y ǯ¤Î²¼£²·å %Y £´·å¤Îǯ %z ¥¿¥¤¥à¥¾¡¼¥ó %% %¼«ÂΤòɽ¤¹
¡ÊÎã¡Ë
print( date( "day %d month %B" ) )
¡Ê·ë²Ì¡Ë
day 14 month August
¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò½ªÎ»¤·¤Æ¿ôÃÍcode¤ò¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë¥×¥í¥°¥é¥à¤Î½ªÎ»ÃͤȤ·¤Þ¤¹¡£code¤ò»ØÄꤷ¤Ê¤¤¤È¤¤Ï£±¤Ç¤¹¡£¤³¤Î´Ø¿ô¤ÏÌá¤êÃͤϤ¢¤ê¤Þ¤»¤ó¡£
¡ÊÎã¡ËÂç°èÊÑ¿ôtermina=programa¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤Þ¤¹¡£
if termina_programa then exit( ) end
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤«¤éÍ¿¤¨¤é¤ì¤ë´Ä¶ÊÑ¿ô¤«¤é¡¢Ê¸»úÎóvarname¤Ç¼¨¤µ¤ì¤ë¥Ç¡¼¥¿¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£´Ä¶ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤È¤¤Ïnil¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ÊÎã¡Ë
print( getenv( "REMOTE_HOST" ) )
´Ä¶ÊÑ¿ô REMOTE_HOST¤ò¥×¥ê¥ó¥È¤·¤Þ¤¹¡£
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢Ê¸»úÎó command ¤ò¼Â¹Ô¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£Ìá¤êÃͤϥ³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤Ç¡¢¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Þ¤¹¡£
¡ÊÎã¡Ë
execute( "mkdir c:\data" )
ºÇ¸å¤Ë
Lua¤ÎÆÃħ¤Î°ì¤Ä¤Ë¡¢»º¶È³¦¤ÈÂç³Ø¤ÎξÌ̤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤²¤é¤ì¤Þ¤¹¡£PUC-Rio¤Ç³«È¯¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ï»º¶È³¦¤Ç¤Ï¿ô½½¤Î¥×¥í¥¸¥§¥¯¥È¤ËÍøÍѤµ¤ì¡¢³Ø½ÑŪ¤Ë¤â¿¤¯¤ÎÈ¿¶Á¤ò¸Æ¤Ó¡¢Â¿¿ô¤Î³Ø°ÌÏÀʸ¤ä³Ø½ÑÏÀʸ¤Ë·ÇºÜ¤µ¤ì¤Þ¤·¤¿¡£
Ãøºî¸¢É½¼¨
Copyright (c) 1994-1998 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved.
Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, subject to the following conditions:
* The above copyright notice and this permission notice shall appear in all copies or substantial portions of this software.
* The name "Lua" cannot be used for any modified form of this software that does not originate from the authors. Nevertheless, the name "Lua" may and should be used to designate the language implemented and described in this package, even if embedded in any other system, as long as its syntax and semantics remain unchanged.
The authors specifically disclaim any warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The software provided hereunder is on an "as is" basis, and the authors have no obligation to provide maintenance, support, updates, enhancements, or modifications. In no event shall TeCGraf, PUC-Rio, or the authors be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of this software and its authors be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of this software and its documentation.
[EOF]