??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲高清综合,伊人丁香狠狠色综合久久,亚洲国产精品一区二区三区久久 http://www.shnenglu.com/AthrunOnline/category/10514.html人最重要的是心境,一颗^静安E的心才能更好的q步,保持自己的心?成ؓ梦想中的高手zh-cnTue, 26 May 2009 10:37:39 GMTTue, 26 May 2009 10:37:39 GMT60lua学习之入??----函数http://www.shnenglu.com/AthrunOnline/archive/2009/05/14/82943.html梁乔?/dc:creator>梁乔?/author>Thu, 14 May 2009 05:14:00 GMThttp://www.shnenglu.com/AthrunOnline/archive/2009/05/14/82943.htmlhttp://www.shnenglu.com/AthrunOnline/comments/82943.htmlhttp://www.shnenglu.com/AthrunOnline/archive/2009/05/14/82943.html#Feedback0http://www.shnenglu.com/AthrunOnline/comments/commentRss/82943.htmlhttp://www.shnenglu.com/AthrunOnline/services/trackbacks/82943.html

1?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl04_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/11/82583.html">lua学习之入?一)----环境搭徏

2?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl02_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82640.html">lua学习之入??----基础语法1

3?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82687.html">lua学习之入??----基础语法2

4?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/14/82943.html">lua学习之入??----函数

     在LUA里函数是个十分重要的内容,因ؓ我们实际开发的时?用的最多的是函数,用函数是装各个实现,在Q里曄听一些大虾说q?写LUA必须要懂得闭?常用pȝ函数,q有范型for写P代器,最后就是编译和q行q有错误信息.其实q章,我就卡了一下壳,卡壳的地方在闭包,因ؓ我没有完全理解闭包的作用,和闭包的好处,|上也没有明的说明闭包的优?所以闭包的概念,我也只能以个人感觉去?如果我说得不?Ƣ迎赐教.如果寚w包理解很?Ƣ迎来指?..你要偶拜你ؓ师也?达者ؓ师啊,偶很好学?

函数有两U用途:1.完成指定的Q务,q种情况下函C用语句用;2.计算q返回|q种情况下函CD句的表达式用?/p>

   其实我们接触最早的,是函数,q记得我们的W一个LUA?print();q就是一个函?可以理解****()都可以当做是函数,其实大部分编E语a的函数都是以q个方式一p用的.认识了什么是函数,那么我们pq写一个函数吧

function maxFun(a , b)
   
if  a > b then
   
return  a;
   
else
     
return  b;
  end
end

-- 我们用一个输句把我们的函数结果显C出?/span> , 证明我们写的函数没有问题

print (maxFun( 4 , 3 ));
上面q个函数
, 其实很简单就是比较两个数的大?/span> . 最后运行的l果我们得到l果? , q里使用的是函数的第1UQ?/span> , 判断两个数的大小 , 在LUA里函数是可以q回多个值的 , q个点和其他~程语言有很大的区别 , 那就很容易造成错觉 , 多个q回?/span> , 那我如何获得各个q回值呢 ? 看例?br />
function returnAnyValue()
        
return   1 , 2 , 3 , 4 ;
   end

    a
, b , c , =  returnAnyValue();
e
, f , =  returnAnyValue();
h
, i , j , k , =  returnAnyValue();

-- [[
print ( " a: " .. a .. "  b: " .. b .. "  c: " .. c .. "  d: " .. d .. "  e: " .. e .. "  f: " .. f .. "  g: " .. g .. "  h: " .. h .. "  i: " .. i .. "  j: " .. j .. "  k: " .. k .. "  l: " .. l .. "  ! " );
]]
-- q样~译是出错的 , 提示告诉我们l为nil不能输出 .

-- 所以我们把E序修改?br />
print ( " a: " .. a .. "  b: " .. b .. "  c: " .. c .. "  d: " .. d .. "  e: " .. e .. "  f: " .. f .. "  g: " .. g .. "  h: " .. h .. "  i: " .. i .. "  j: " .. j .. "  k: " .. k .. "  ! " );

l果如下
:
   a
: 1  b : 2  c : 3  d : 4  e : 1  f : 2  g : 3  h : 1  i : 2  j : 3  k : 4


虽然我们不能输出L的?但是我们Ҏ错误提示可以知道l的值是nil?

完返回?那么我们要看参数C,LUA支持可变参数的模式的使用的方法和C语言的差不多,不熟悉的可以先学C语言,毕竟我看到的LUA大多数都是嵌入C中的,所以C/C++臛_你要?

好了我们要进入我觉得比较隄?闭包

在我接触的编E语a?其实q没发现q闭包的概念,坦白的说一?是LUA我才接触闭包?闭包从网上的资料来看,是JAVASCRIPT里的匿名函数的?我接触新语言的时?dƢ用自己接触q的语言去进行对?d?我觉得这U学习的Ҏq是比较有效果的,有兴的朋友也可以试试这个方?),在我看了|上公开的闭包程?最大的特点是使用,外面的函数有自己的局部变?内部的匿名函C用了外部函数的局部变?有点像面向对象思想里的意?后来我在LUA的一个论坛看C关于闭包的定义,如下:

当一个函数内部嵌套另一个函数定义时Q内部的函数体可以访问外部的函数的局部变量,q种特征我们UC词法定界。虽然这看v来很清楚Q事实ƈ非如此,词法定界加上W一cd数在~程语言里是一个功能强大的概念Q很语a提供q种支持?br />技术上来讲Q闭包指D不是指函数Q函C仅是闭包的一个原型声?/span>

q个是我在网上找的一个关于闭包的例子,个h感觉水^有限.可能使用|上的例子更有说服力

下面看一个简单的例子Q假定有一个学生姓名的列表和一个学生名和成l对应的表;现在x据学生的成W从高C对学生进行排序,可以q样做:

names 
=  { " Peter " ,   " Paul " ,   " Mary " }

grades 
=  {Mary  =   10 ,  Paul  =   7 ,  Peter  =   8 }

table
. sort (names ,  function (n1 ,  n2)

    
return  grades[n1]  >  grades[n2]     --  compare the grades

end)
假定创徏一个函数将上面的功能包装v?/span>

   function sortbygrade (names, grades)

       table.sort(names, function (n1, n2)

          return grades[n1] > grades[n2]    -- compare the grades

    end)

end
例子中包含在sortbygrade函数内部?/span>sort中的匿名函数可以讉Ksortbygrade的参?/span>gradesQ在匿名函数内部grades不是全局变量也不是局部变量,我们UC外部的局部变量(external local variableQ或?/span>upvalue。(upvalue意思有些误|然而在Lua中他的存在有历史的根源,q有他比?/span>external local variable短)?/span>


q个例子主要说明的是在外部函数和内部函数之见参数的?函数中就可以直接用变量进行传?q里需要说明一下的是table.sort(存放元素的数l?排序函数)具体的等后面我介l常用库的时候说.只要知道是表排序好.

函数写出来?但是我们需要更直观的看到这些资?br />所以我在最下面加上了如下代?/span>

print ( " --------- " )
sortbygrade (names
,  grades);

for  v in pairs(names)  do

print (names[v])
end
输出l果?br />Mary
Peter
Paul
我将grades = {Mary = 7, Paul = 8, Peter = 9}改了再看效果
Peter
Paul
Mary

function newCounter()

    
local i = 0

    
return function()     -- anonymous function

       i 
= i + 1

        
return i

    end

end

 

c1 
= newCounter()

print(c1())  --> 1

print(c1())  --> 2

print(c1())  --> 3

l果代码里已l显CZ,我就不说?但是大家看到q个l果?你想C什?
对象?是对象,看以下C#代码
public class CC
{
    
private int a;

    
public CC()
    
{
       a
=0;
    }


    
public int newCounter()
    
{
       
this.a=this.a+1;
       retrun 
this.a;
    }

}

如果LUA代码里C1=newCounter();C2=newCounter()
 print(c2())--->1
是不是跟我们声明一个对象十分的cM?所以我推断闭包在一定程度上实现了部分面向对象的功能,肯定有一定的差别?我只是说cM..而且我看代码有点像C语言d现面向对象的感觉...

闭包q可以实现类似JAVA里沙q功能,(来自|上,我ƈ没有q行q段代码)
do

    local oldOpen 
= io.open

    io.
open = function (filename, mode)

       
if access_OK(filename, mode) then

           
return oldOpen(filename, mode)

       
else

           
return nil, "access denied"

       
end

    
end

end

*正确的尾调用
q个q宫游戏是典型的状态机Q每个当前的戉K是一个状态。我们可以对每个戉K写一个函数实现这个迷宫游戏,我们使用调用从一个房间移动到另外一个房间。一个四个房间的q宫代码如下Q?br />
function room1 ()

    local move 
= io.read()

    
if move == "south" then

       
return room3()

    elseif move 
== "east" then

       
return room2()

    
else

       
print("invalid move")

       
return room1()   -- stay in the same room

    
end

end

 

function room2 ()

    local move 
= io.read()

    
if move == "south" then

       
return room4()

    elseif move 
== "west" then

       
return room1()

    
else

       
print("invalid move")

       
return room2()

    
end

end

 

function room3 ()

    local move 
= io.read()

    
if move == "north" then

       
return room1()

    elseif move 
== "east" then

       
return room4()

    
else

       
print("invalid move")

       
return room3()

    
end

end

 

function room4 ()

    
print("congratilations!")

end

我们可以调用room1()开始这个游戏?br />
如果没有正确的尾调用Q每ơ移动都要创Z个栈Q多ơ移动后可能D栈溢出。但正确的尾调用可以无限制的调用,因ؓ每次调用只是一个goto到另外一个函数ƈ不是传统的函数调?br />
(以上代码来源|上)
正确调用论q的意义在于..栈溢出的问题,不正的调用是存在栈溢出问题的.

q篇写的我自己都不是很满?..因ؓq个东西..需要点旉消化...{我消化了再来整理一?好象开?我也是一个LUA新手,我只能把我认识的弄出?而且正确?.也非l对..其实我的目的只是传播我的学习的思想.

明鏡?/a>

]]>
lua学习之入??----基础语法2http://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82687.html梁乔?/dc:creator>梁乔?/author>Tue, 12 May 2009 06:50:00 GMThttp://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82687.htmlhttp://www.shnenglu.com/AthrunOnline/comments/82687.htmlhttp://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82687.html#Feedback0http://www.shnenglu.com/AthrunOnline/comments/commentRss/82687.htmlhttp://www.shnenglu.com/AthrunOnline/services/trackbacks/82687.html1?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl04_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/11/82583.html">lua学习之入?一)----环境搭徏

2?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl02_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82640.html">lua学习之入??----基础语法1

3?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82687.html">lua学习之入??----基础语法2

4?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/14/82943.html">lua学习之入??----函数

      ~程语言之所以叫做语a,因ؓ它具有语a的特?我们回忆一下学p的过E?首先是学ABC字母,然后是单?然后是句?最后到文章..其实~程语言也具有这LҎ?标识W等?字母",值和变量q有API{于"单词",语句块或函数,甚至是类{于"句子",一个程序就是一?文章"..今天我学习的?句子",也就是语句块.

        在LUA里语句块是由以下几个构成?br />
W一:   语句l?a name="2.4.1">Chunks  

chunk :: =  {stat [`;´]}

q儿不允许有I的语句D,所以?/span> ' ;; '  是非法的。?br />
lua 把一个 chunk 当作一个拥有不定参数的匿名函数Q参见 ?/span> 2.5 . 9 Q处理。正是这Pchunk 内可以定义局部变量,接收参数Qƈ且返回倹{?br />
chunk 可以被保存在一个文件中Q也可以保存在宿ȝ序的一个字W串中。当一个 chunk 被执行,首先它会被预~译成虚拟机中的指o序列Q然后被虚拟释运行这些指令。?br />
chunk 也可以被预编译成二进制Ş式;l节参考程序 luac。用源码形式提供的程序和被编译过的二q制形式的程序是可以怺替换的; Lua 会自动识别文件类型ƈ做正的处理。?br />

在手册里,只有q简短的解析,对于一个初学?其实真是很抽?某XX教授:手册有名字给你叫手册,用来查不是用来学?.我曰:没有其他学习资料只有手册的时?它就是最好的学习资料.你是教授,U别?可以单看代码研究,偶水q_只能折腾手册!)

Chunks其实是一个代?Chunk可以是简单的一句print("haha");也可以是一个函数外加一个输?输入语句,甚至可以是一个文?例如我们W一测试时候的test.lua....你可以简单的理解?a name="2.4.1">Chunk是统U?.代表着一个由语句l成的集?.

W二:语句块blocks
语句块是一列语句段Q从语法上来_一个语句块跟一个 chunk 相同Q?br />
    block ::
= chunk

一个语句块可以被显式的写成一个单独的语句D: 

    stat ::
= do block end

昑ּ的语句块对于控制变量的作用范围很有用。有时候,昑ּ的语句块被用来在另一个语句块中插入?/span>return 或是 break 
代码?语句?Q指一个控制结构内Q一个函CQ或者一?span lang="EN-US">chunkQ变量被声明的那个文件或者文本串Q?br />
W三:控制l构

    注意:    控制l构的条件表辑ּl果可以是Q何|Lua认ؓfalse?/span>nil为假Q其他gؓ真?/font>

        大学时?老师跟我?所有编E语a都是׃U结构组?序l构,选择l构,循环l构.个h认ؓ..q样讄的原?和h的生zL很大关系,我们从生老病?q个是一个最单的序l构.从生存到消失.人都需要的l历,但在生老病ȝq程中我们又要面临选择..老爸老妈没得选择...你还没生,是你还不存?所以你没选择的权?那么是说选择是徏立在已经存在的基上的,所以编E就有了if(某某XX某某?某某胜利..所以这个选择必须要是有选择前提?如果q个选择是永q都没机会选择..(例如选择老母- -!没得选的)q个选择没有了选择的意义了,q有循环,是重复实现某事?例如M,7点v床然后上?然后下课,然后冲凉,然后睡觉,然后又重复到7点v床然后上?然后下课,然后冲凉,然后睡觉,然后又重复到7点v?.............,q就是一个@?你必重复地做某些事情的时?可以用循环q个l构是实现重复做某事.

         既然人的一生都是用q三中结构描q的,E序的出?目的是帮助?减轻人的工作?做这些结构也是~程语言中的原住民了.

LUA的选择l构,貌似只有一U就是if
stat ::= if exp then block {elseif exp then block} [else block] end
单的一?p明了,if-else支持嵌套elseif  写法有点像VB....
if a>10 then  print("过10?/span>"
else print("于10?/span>"
   end
q个是一个简单的选择l构...有编E基的一看就懂了.

LUA的@环结?有三U?分别?strong>while exp do block end , repeat block until exp ,for Name `=´ exp `,´ exp [`,´ exp] do block end
1.while exp do block end
while condition do

    statements;

end;
2. repeat block until exp
repeat

    statements;

until conditions;
有点cMdo 
while
3.for....在LUA里for是有两种情况,如果用C#来描q的?LUA的for含盖了C#里的for和foreach两种,

      数值for

for var=exp1,exp2,exp3 do

    loop
-part

end
for?从exp1Q初始|到exp2Q终止|Qexp3是一个变化跨度? 执行loop
-part。其中exp3可以省略Q默认跨度默认ؓ1
和传l的forl构一样for(int i=0;i<10;i++),只是在LUA里简化了很多;
例子:
   for i=10,1,-2 do

       print(i)

   end

输出l果?
10
8
6
4
2
有几炚w要注意:
          1. 三个表达式只会被计算一ơ,q且是在循环开始前?/span>
          2. 控制变量var是局部变量自动被声明,q且只在循环内有?/span>.
          3. 循环q程中不要改变控制变量的|那样做的l果是不可预知的。如果要退出@环,使用break语句


范型for循环Q?br />
for namelist in explist1 do block end

q里和C
#的foreach基本一?/span>
c#:
foreach(DataRow ss in dataTbale.Rows)
{
  
//输出ss[1]
}

LUA?br />days 
= {"Sunday""Monday""Tuesday""Wednesday",

              
"Thursday""Friday""Saturday"}

for v in ipairs(days) do

    
print(days[v]);

end 

只要自己试一下就知道l果?
反正是一个传l@?一个P代@?/span>


q需要补充一个语句就是break,和return
break语句用来退出当前@环(for、repeat?/span>whileQ。在循环外部不可以用?br />
return用来从函数返回结果,当一个函数自然结束时Q结会有一个默认的return。(q种函数cMpascal的过E(procedureQ)

Lua语法要求break和return只能出现在block的结一句(也就是说Q作为chunk的最后一句,或者在end之前Q或者else前,或者until前)Q例如:

local i 
= 1

while a[i] do

    
if a[i] == v then break end

    i 
= i + 1

end

有时候ؓ了调试或者其他目的需要在block的中间用return或者breakQ可以显式的使用do..end来实玎ͼ

function foo ()

    
return            --<< SYNTAX ERROR

    
-- 'return' is the last statement in the next block

    do 
return end        -- OK

                   
-- statements not reached

end

基本的结构我们都学习完了,学到q里我们基本的LUA都能看懂?也不能算?L知道LUA的大概意思了,基础语法(?


明鏡?/a>


]]>
lua学习之入??----基础语法1http://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82640.html梁乔?/dc:creator>梁乔?/author>Mon, 11 May 2009 16:20:00 GMThttp://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82640.htmlhttp://www.shnenglu.com/AthrunOnline/comments/82640.htmlhttp://www.shnenglu.com/AthrunOnline/archive/2009/05/12/82640.html#Feedback2http://www.shnenglu.com/AthrunOnline/comments/commentRss/82640.htmlhttp://www.shnenglu.com/AthrunOnline/services/trackbacks/82640.html1?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl04_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/11/82583.html">lua学习之入?一)----环境搭徏

2?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl02_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82640.html">lua学习之入??----基础语法1

3?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82687.html">lua学习之入??----基础语法2

4?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/14/82943.html">lua学习之入??----函数


     学习LUAW?个小时了,q是W?文?也是我今天学习的最后ȝ?LUA我也是个初学?我目标只是想可能的把自己学习的一些想法表现出?可能写的没有那些大虾们好,大虾们的生动.但至是我个人的写作,本h很不喜欢转蝲?转蝲不如直接d人BLOG?.再一ơ声?.我是LUA初学?一个初学者写l初学者的....废话不说..入正?

     
        M语言,首先要明白的?标识W?的命名规?LUA的规则和C语言的没太大分别都是?字母,数字,下划U组?而且不能以数字开?.貌似我会的编E语a都是q样的规?.   q个没啥技术难?...靠死记的..
        LUA的字W串表示是可以用单引h者双引号?..q点跟JAVASCRIPT是一L,
        在LUA手册里有一D这L东西

     a  =   ' alo\n123" '
     a 
=   " alo\n123\ ""
     a  =   ' \97lo\10\04923" '
     a 
=  [[alo
     
123 " ]]
     a  =  [ == [
     alo
     
123 " ]==]
手册里的解释是这L
字符串还可以用一U长括号括v来的方式定义。我们把两个正的Ҏ号间插入 n 个等号定义ؓW n U正长括受就是说Q? U正的长括号写作 [[ Q一U正的长括号写作 [=[ Q如此等{。反的长扩展也作cM定义QD个例子,4 U反的长括号写作 ]====] 。一个长字符串可以由M一U的正的长括号开始,而由W一个碰到的同反的长括L束。整个词法分析过E将不受分行限制Q不处理M转意W,q且忽略掉Q何不同别的长括受这U方式描q的字符串可以包含Q何东西,当然特定U别的反长括号除外。?br />
另一个约定是Q当正的长括号后面立卌了一个换行符Q这个换行符׃包含在这个字W串内。D个例子,假设一个系l用 ASCII 码(q时Q?/span>'a' ~码为?/span>97 Q换行符~码为?/span>10 Q?/span>'1' ~码为?/span>49 Q,下面五种方式描述了完全相同的字符Ԍ 

很别扭啊手册里的介绍是这个a所代表的字W串昄都是一L...感觉犯晕?..

手册例子惌辄意思我解析一?
a = 'alo\n123"'  q个字符串是用单引号括v来的,123后面跟了?.....惌辄意思就是说,如果用单引号作ؓ字符串的引用的话,内部的双引号做双引号处理,
a = "alo\n123\"" q个字符串则是用双引hh?Z解决冲突,p使用转义字符\"M?
a = '\97lo\10\04923"'  q个其实是ASCII码{义而已..
最令h犯晕的是下面..
= [==[
alo
123"]==]
q个惌辑֕?其实q个作用和C#里的@""有点cM..有点像格式输出吧,,
里面的思想有个灉|的配?"[["  在手册里有个名字,叫长括号,而在"[==["中间的等号个C表多的长括号,没有{号?U?1个等号ؓ1U?cL下去.

开始在代码?我以?U?的意义在于这个字W串占多行的意?但是l过我代码的试原来没Q何关p?.
依照我这个初学者的猜测...讄q些的意?目的是一个避免字W串内过多的使用转义字符?LUA的目标是要做嵌入脚本语言,
例如有个游戏的对?
孩?"很牛?/span>"
牛说:
"不牛"
牛说:
"]]"
孩?
"]=]"
以上字W?br />a=[==[
孩?"很牛?/span>"
牛说:
"不牛"
牛说:
"]]"
孩?
"]=]"]==]
q样在[==[里就可以使用M的字W串表达W?提供了更大的灉|?


后来我咨询了下LUA高手他给我的{复如下
q个?.1版本新加的功?我想主要的作用是屏蔽转义字符的作用的,?.0的时?我们写lua都需要自己可意去回避一些{义字W?.q个只是我个人想?你可以问问其他h,目前我实际应用的开发都?.0居多,q个?.1新加?我也不是很确?但照字面意?.q不全?也差不多?/font>

看来我的猜想是正的.


变量

LUAUCؓ脚本语言,那么注定了他的变量是弱cd?是说变量没有类?臛_我认识的脚本语言JAVASCRIPT是没类型的.所以姑且把脚本语言定义为变量没有类型的语言是脚本语言...(某XX教授:你丫的ؕ下定义误人子?..Ua是帮助记?..别教?..别教?.
                                     变量没有cd,有类型的只是?(脚本语言的特?         
Lua 中有八种基本cdQ nil, boolean, number, string, function, userdata, thread, and table. Nil cd只有一U值 nil Q它的主要用途用于标表识和别的Q何值的差异Q通常Q当需要描qC个无意义的值时会用到它。 Boolean cd只有两种|false 和 true。 nil 和 false 都能D条g为假Q而另外所有的值都被当作真。 Number 表示实数Q双_ֺ点敎ͼ。(~译一个其它内部数字类型的 Lua 解释器是件很Ҏ的事Q比如把内部数字cd改作单精度QҎ或长整型。参见文件 luaconf.h 。) String 表示一串字W的数组。 Lua 是?/span>8-bit clean 的:字符串可以包含Q何?/span>8 位字W,包括零结束符 ('\0'

userdata cd用来Q?C 数据保存?Lua 变量中。这个类型相当于一块原生的内存Q除了赋值和相同性判断,Lua 没有Z预定义Q何操作。然而,通过使用 metatable Q元表) Q程序员可以?userdata 自定义一l操? userdata 不能?Lua 中创建出来,也不能在 Lua 中修攏V这L操作只能通过 C API。这一点保证了宿主E序完全掌管其中的数据?br />
大家都知?C语言里有几个特别的数据构?例如,l构?q体等,q个userdata cd其实满结构体传值的功能的数据类?臛_我现在是q样理解?.至于元表我还没有接触,暂时?em>userdata cd{同于一个只ȝ?

Lua 中有三类变量Q全局变量Q局部变量,q有 table 的域?其实今天大多的时候都p在字W串?但是一U语a来说,字符也是一个很重要的重?例如C#基本提供了每个类都是 ToString()Ҏ,C语言,单独用一章介l字W串,数据l构里也独立一个章专门说字W串,所以这个字W串是在我们日常开发中l常用到?对它理解得深其实是有好处?..今天到q里

明鏡?/a>


]]>
lua学习之入?一)----环境搭徏http://www.shnenglu.com/AthrunOnline/archive/2009/05/11/82583.html梁乔?/dc:creator>梁乔?/author>Mon, 11 May 2009 08:30:00 GMThttp://www.shnenglu.com/AthrunOnline/archive/2009/05/11/82583.htmlhttp://www.shnenglu.com/AthrunOnline/comments/82583.htmlhttp://www.shnenglu.com/AthrunOnline/archive/2009/05/11/82583.html#Feedback1http://www.shnenglu.com/AthrunOnline/comments/commentRss/82583.htmlhttp://www.shnenglu.com/AthrunOnline/services/trackbacks/82583.htmll对原创

1?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl04_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/11/82583.html">lua学习之入?一)----环境搭徏

2?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl02_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82640.html">lua学习之入??----基础语法1

3?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82687.html">lua学习之入??----基础语法2

4?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/14/82943.html">lua学习之入??----函数

要学习编E?必须的一肯定是编译工?和一些调试工?我用的Lua-5.1.4下蝲地址:http://www.lua.org/ftp/lua-5.1.4.tar.gz,

接触未知道的东西应该怎么?肯定是找GOOGLE?一搜烦....|上教我是这样做的的:

(来自http://bbs.luaer.cn/read-Lua-tid-105.html)
Q?Q?下蝲Lua压羃包,下蝲面?/font>http://www.lua.org/download.html 最新版本是lua-5.1.2
也可以点击这里直接下载:http://www.lua.org/ftp/lua-5.1.2.tar.gz  它的体积很小Q只?10K
Q?Q解压文Ӟ比如解压?D:/lua-5.1.2 文g夹内Q以下均以此路径ZQ?/span>
Q?Q在 D:/lua-5.1.2内,存在名ؓ /etc的子目录。在此目录下扑ֈ luavs.bat 文gQƈ它复制?D:/lua-5.1.2 中?/span>
Q?Q双L?luavs.bat 批处理文Ӟ如果执行成功Q在 D:/lua-5.1.2/src 文g夹中会存?luac.exe ?span style="COLOR: #ff6600"> lua.exe两个文g?/font>
Q?Q将 D:/lua-5.1.2/src 加入到系l\径中?/font>
Q?Q检Lua是否安装成功Q?/font>
?开?/b>"--"q行"处输?lua 然后回RQ若出现cmd控制台界面且含有"[backcolor=rgb(255,]Lua 5.1.2"之类的文字,则说明Lua已经成功安装。如果提C没有找到该命oQ请?b>D:/lua-5.1.2/src 文g夹中是否存在 luac.exe ?lua.exe 两个文gQƈ保已将 D:/lua-5.1.2/src 加入到系l\径中?br />
教的?.1.2,我用的是5.1.4....相对我这U初学者来?没多大分?.
所以我照着做了....
q行luavs.bat


一?完全不知道什么事?打开E:\lua-5.1.4\src(我放在E?.什么都没发?好你有种你闪,我就不让你闪,?>开?>q行 CMD ->E: -> CD E:\lua-5.1.4->luavs.bat/得到的结?...LINKp|{一大堆信息.....H然脑袋一片空?..咋办...再试..认真看了出错信息..原来...q个BAT是一个v~译的作用的...我用我装的VS2008~译你试试吧!!死马当活马医,开?>E序->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命o提示 输入CD E:\lua-5.1.4->E:->luavs.bat
    OK....成功生成luac.exe,lua.exe....q行下一步打开环境变量->pȝ变量->Path加上E:\lua-5.1.4\SRC再去 CMD?输入LUA.....得到以下l果是LUA的版权信?..很好证明环境已经成功搭徏....我们可以开始下一步工?..

然后我们在记事本下编写一?br />print("-----------------------------");
print("试LUA~~~梁乔?009");
print("-----------------------------");
q保存ؓtest.lua
然后在CMD下运?lua h:\test.lua

----------------------------------------
试LUA~~~梁乔?009
----------------------------------------

GOOD JOB.......我们l于成功地跑L一个LUA?Ȁ动吧!!

明鏡?/a>



]]>
󽶾þĻ| ľƷþþþþò| Ʒþþþù3d| ˾þþƷӰԺ| þþþþþ97| þþƷһ| þ99ֻоƷ66| ھƷþþþӰԺ޹²| þþоƷĻ| ɫۺϾþþĻ | ȾþùŷһƷ| ϵרþ| ھƷþþþþþ| ޾Ʒһþ| þþƷۺһ| ŷձþùʵҶ԰ | þþþþþ| ҹƷþþþþ| þŷձƷ| ˾ƷǾþ| Ʒþþþ| þĻƷѩ | þþƷĻ| þþƷ99þ㽶ɫ | þþһƷ99þþƷ88| ƷþþþӰԺɫ| þAVԴվ| Ʒþ| AV12þ | þøһëƬ| ѾþҹƷ| պþþþþ| ȾþùŷһƷ| þ㽶߿ۿ99| ޾þþһ| þþƷƷʢۿ| þרƷ| 91þ㽶Ů߿| þ2019Ļ| 91鶹Ʒ91þþþþ| 99ƷþþƷһ|