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]