ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

½Å±¾ÓïÑÔLuaСÊÔ£¨°²×°¼°¼òµ¥Óï·¨£©
2014-11-24 01:01:14 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:5´Î
Tags£º½Å±¾ ÓïÑÔ Lua СÊÔ °²×° ¼òµ¥ Óï·¨

Ò»¡¢Lua ÓïÑÔ¼ò½é


Lua£¨Ó¢Óï·¢Òô£º/ lu /£©³ÌÐòÉè¼ÆÓïÑÔÊÇÒ»¸ö¼ò½à¡¢ÇáÁ¿¡¢¿ÉÀ©Õ¹µÄ½Å±¾ÓïÑÔ£¬ÊÇÆÏÌÑÑÀÓïÖС°Luna¡±£¨ÔÂÁÁ£©µÄÒâ˼¡£ÊǰÍÎ÷ÀïÔ¼ÈÈÄÚ¬ÌìÖ÷½Ì´óѧ£¨Pontifical Catholic University of Rio de Janeiro£©ÀïµÄÒ»¸öÑо¿Ð¡×飬ÓÉRoberto Ierusalimschy¡¢Waldemar Celes ºÍ Luiz Henrique de FigueiredoËù×é³É²¢ÓÚ1993Ä꿪·¢£¨ÒѾ­ÓÐ20¶à¸öÄêÍ·¿©£©¡£ ÆäÉè¼ÆÄ¿µÄÊÇΪÁËǶÈëÓ¦ÓóÌÐòÖУ¬´Ó¶øÎªÓ¦ÓóÌÐòÌṩÁé»îµÄÀ©Õ¹ºÍ¶¨Öƹ¦ÄÜ¡£LuaÓɱê×¼C±àд¶ø³É£¬¼¸ºõÔÚËùÓвÙ×÷ϵͳºÍƽ̨É϶¼¿ÉÒÔ±àÒ룬ÔËÐС£


Lua²¢Ã»ÓÐÌṩǿ´óµÄ¿â£¬ÕâÊÇÓÉËüµÄ¶¨Î»¾ö¶¨µÄ¡£ËùÒÔLua²»ÊʺÏ×÷Ϊ¿ª·¢¶ÀÁ¢Ó¦ÓóÌÐòµÄÓïÑÔ¡£Lua ÓÐÒ»¸öͬʱ½øÐеÄJITÏîÄ¿£¬ÌṩÔÚÌØ¶¨Æ½Ì¨Éϵļ´Ê±±àÒ빦ÄÜ¡£


¶þ¡¢Lua °²×°


ÍøÉÏËÑÁËһϣ¬ºÃÏñsudo apt-get¡¢install lua5.2¾Í¿ÉÒÔ¡£


ÎÒÊÇÔÚLua¹ÙÍøÏÂÔØ°²×°°ü°²×°µÄ£¨ÎÒÏÂÔØµÄlua-5.2.3.tar.gz£©£º


1. tar -xvf lua-5.2.3.tar.gz ºó cd lua-5.2.3 ½øÈëĿ¼


doc Makefile README src


ºÜÃ÷ÏÔ£¬LinuxerÔÚ¿´µ½READMEµÄÇé¿öÏÂÎãÓ¹ÖÃÒɵÄÒª¿´Ò»Ï£º


This is Lua 5.2.3, released on 11 Nov 2013.


For installation instructions, license details, and


further information about Lua, see doc/readme.html.


Õâ¸öREADMEдµÄºÜ¼òµ¥£¬Ã»ÓÐÎÒÃÇÔ¤ÏëµÄÄÇÑùдÁËÈçºÎ°²×°»òÕßÈçºÎʹÓõȣ¬µ«ÊÇËüдÃ÷ÁËÏëҪѧϰLuaµÄ¸ü¶àÐÅÏ¢£¬²é¿´doc/readme.htmlÎļþ£¬ËùÒÔ¡­¡­ chromium-browser doc/readme.html´ò¿ª¿´¿´ß¡£²»³öËùÁÏ£¬´ò¿ªµÄÍøÒ³ÖÐÓÐ×ÅAbout / Installing / Changes ...£¬ËùÒÔÎÒÃÇÂÔ¶ÁÒ»±é¾ÍÄÜÖªµÀÈçºÎ°²×°¡£


2. make linux (ÕâÀïmakeºó¸ú×ÅÆ½Ì¨£¬ÎÒÃǵ±È»Òª¸ú×Ålinux¿©)


²»ÐÒµÄÊÇ¡­¡­±¨´íÁË£º¡° error:readline/readline.h:no such file or directory ¡±


֮ǰµÄ²©¿ÍÖУ¬ÎÒд¹ýʹÓÃapt-file²éѯÕâÖÖȱʧÎļþµÄ·½·¨£¬ÓÐÐËȤ¿ÉÒÔ¿´¿´¡¶cyclictest ²âÊÔÒÔ¼°Ô­Àídz̸¡·Ò»ÎÄ£¬ÔÚÆäÖÐÓÐÏêϸµÄapt-fileʹÓá£


apt-file search readline | grep readline.h


¿ÉÒÔºÜÇáËɵØÔÚ½á¹ûÖÐÕÒµ½ÕâÌõ£º


¡° libreadline6-dev: /usr/include/readline/readline.h ¡±£¬ËùÒÔapt-get°²×°Ö®£¨sudo apt-get install libreadline6-dev£©£¡


°²×°Íê³Éºó£¬ÔÙʹÓà make linux ·Ç³£Ë³Àû£¡


3. sudo make install


´Ëʱ£¬LuaÒѾ­°²×°Íê±Ï£¬ÎÒÃÇ¿ÉÒÔʹÓÃÕâ¸öÉñÆæµÄ½Å±¾ÓïÑÔLuaÁË:


Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio


> print("Hello World")


Hello World


>


×÷Ϊһ¸ö½Å±¾ÓïÑÔ£¬Ëüµ±È»Ò²¿ÉÒÔдµ½½Å±¾ÎļþÖÐÔËÐУº


#!/usr/local/bin/lua


print("Hello World")


Hello World


Hello World


Èý¡¢Lua ÓïÑÔ»ù´¡


3.1 ×¢ÊÍ


-- Á½¸öºáÏß¿ªÊ¼µ¥ÐÐ×¢ÊÍ


--[[


¼ÓÉÏÁ½¸ö[ºÍ]±íʾ


¶àÐÐ×¢ÊÍ¡£


--]]


3.2 ±äÁ¿ÀàÐÍ


LuaÊÇÒ»ÖÖ¶¯Ì¬ÀàÐÍÓïÑÔ£¬Òò´ËÓïÑÔÖÐûÓÐÀàÐ͵͍Ò壬²»ÐèÒªÉùÃ÷±äÁ¿ÀàÐÍ£¬Ã¿¸ö±äÁ¿×Ô¼º±£´æÁËÀàÐÍ¡£LuaÓаËÖÖ»ù±¾ÀàÐÍ:


ÊýÖµ(number) ÄÚ²¿ÒÔdouble±íʾ£¬LuaµÄÊý×ÖÖ»ÓÐdoubleÐÍ£¬64bits£¬Äã²»±Øµ£ÐÄLua´¦Àí¸¡µãÊý»áÂý£¨³ý·Ç´óÓÚ100,000,000,000,000£©£¬»òÊÇ»áÓо«¶ÈÎÊÌâ


×Ö·û´®(string) ×ÜÊÇÒÔÁã½áβ,µ«¿ÉÒÔ°üº¬ÈÎÒâ×Ö·û(°üÀ¨Áã),Òò´Ë²¢²»µÈ¼ÛÓÚC×Ö·û´®,¶øÊÇÆä³¬¼¯¡£×Ö·û´®Äã¿ÉÒÔÓõ¥ÒýºÅ£¬Ò²¿ÉÒÔÓÃË«ÒýºÅ»òÕßÉÏÃæ×¢ÊÍʱÓõ½µÄ[[ ]](ÀàËÆÓÚPythonÖеÄÈýÒýºÅ£¬¿ÉÒÔÓÃÓÚ¶¨Òå¶àÐеÄ×Ö·û´®)£¬»¹Ö§³ÖCÀàÐ͵ÄתÒ壬±ÈÈ磺 ¡®\a¡¯ £¨ÏìÁ壩£¬ ¡®\b¡¯ £¨Í˸ñ£©£¬ ¡®\f¡¯ £¨±íµ¥£©£¬ ¡®\n¡¯ £¨»»ÐУ©>£¬ ¡®\r¡¯ £¨»Ø³µ£©£¬ ¡®\t¡¯ £¨ºáÏòÖÆ±í£©£¬ ¡®\v¡¯ £¨×ÝÏòÖÆ±í£©£¬ ¡®\\¡¯ £¨·´Ð±¸Ü£©£¬ ¡®\¡±¡® £¨Ë«ÒýºÅ£©£¬ ÒÔ¼° ¡®\¡± £¨µ¥ÒýºÅ)


²¼¶û(boolean) Ö»ÓС°true¡±»òÕß¡°false¡±Á½¸öÖµ¡£Êý×Ö0¡¢''¿Õ×Ö·û´®£¨'\0'£©¶¼ÊÇtrue£¡


º¯Êý(function) LuaµÄ¹Ø¼ü¸ÅÄîÖ®Ò»¡£²»¼òµ¥µÈͬÓÚCµÄº¯Êý»òº¯ÊýÖ¸Õë¡£


±í(table) Òì¹¹µÄHash±í¡£LuaµÄ¹Ø¼ü¸ÅÄîÖ®Ò»¡£


userdata Óû§(·Ç½Å±¾Óû§)¶¨ÒåµÄCÊý¾Ý½á¹¹¡£½Å±¾Óû§Ö»ÄÜʹÓÃËü,²»Äܶ¨Òå¡£


Ïß³Ì(thread) LuaЭ×÷Ïß³Ì(coroutine),ÓëÒ»°ã²Ù×÷ϵͳµÄÇÀռʽÏ̲߳»Ò»Ñù¡£


nil ´ú±íʲôҲûÓÐ,¿ÉÒÔÓëCµÄNULL×÷Àà±È,µ«Ëü²»ÊÇ¿ÕÖ¸Õë¡£Äã·ÃÎÊÒ»¸öûÓÐÉùÃ÷¹ýµÄ±äÁ¿£¬¾ÍÊÇnil¡£ÀýÈç foo = anUnknownVariable ÏÖÔÚ foo = nil¡£ Ö»ÓÐfalseºÍnilÊÇfalse£¬ÆäËûµÄ¶¼ÊÇtrue£¬ÉÏÃæÌáµ½¹ý°üÀ¨0ºÍ¿Õ×Ö·û´®ÔÚÄÚ¶¼ÊÇtrue¡£


> print(type(nil))
nil
> print(type(99.9+12))
number
> print(type(true))
boolean
> print(type("Hello World"))
string
> print(type(print))
function
> print(type{test = "test"})
table


ҪעÒâµÄÊÇ£ºluaÖеıäÁ¿Èç¹ûûÓÐÌØÊâ˵Ã÷£¬È«ÊÇÈ«¾Ö±äÁ¿£¬ÄÇÅÂÊÇÓï¾ä¿é»òÊǺ¯ÊýÀï¡£±äÁ¿Ç°¼Ólocal¹Ø¼ü×ÖµÄÊǾֲ¿±äÁ¿¡£


theGlobalVar = 50


local theLocalVar = "local variable"



ÍÆ¼öÔĶÁ£º


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºÇ¶Èëʽ¿ª·¢¹¤³ÌÊ¦ÃæÊÔÌâ ¨C CÓïÑ.. ÏÂһƪ£ºÔÚUbuntuÏÂʹÓÃStarterWareΪBeag..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ: