码迷,mamicode.com
首页 > 其他好文 > 详细

Lua初学心得 及总结

时间:2017-09-30 14:57:38      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:color   运行程序   参数   bool   col   问题:   类型   function   lin   

local Record={}   
function Untien(v)
if Record[v]==nil then
   Record[v]=true
   return true
   else return false
  end
end

b="111"
p={1,4,5,6,9,"kkk"}
function dump(s)

  if type(s)=="table" then
   print ("this is "..type (s))
    for k,v in pairs(s) do
      print("this is"..type(v))
      print (k,v,type(v))
      print ("     ")

        if type(v)=="table"and Untien(v) then

           dump(v)

        end
    end

    else print ("this is "..type(s))
    print (s)
    print ("     ")

  end
end
dump(b)
dump(p)
dump(_G)

   代码解释: 上面的代码包含了lua 的 方法的定义(function )Untien(v) 该方法是在遍历table 时 判断是否已经遍历过的方法,(function)dump(s)该方法就是遍历给定元素的所有成员并打印他的数据类型和值的方法;

其中包含了重要的递归的思想;

 

  正文:因为开发的需求这两天匆匆就的学习了一下lua 语言,挺说这门语言很好学就没怎么的太 下功夫 ,结果吃了大亏。因为第一次接触解释性语言。(下面引用度妈h话解释一下什么是解释性语言和编译性语言);

    编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.
而相对的,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行
  
  一天的学习中总结了一下的几点问题:
Q: 在lua 中只有一种数据结构就是“Table”(表),表里可以保存所有的数据类型(string ,number,bool...)、数据结构(list,)、方法..;
 
Q:在Lua中,Actor={say=function(v) ... end},那么Actor:say("Hello")Actor.say("Hello")的区别

  Lua  语言中为了面向对象在定义方法是额外附带上一个参数(self),用来指定方法的作用对象的

点和冒号都是调用方法的一种方式,实现的效果是一样的;区别在于使用的形式不同;点的话需要指定(self 的对应值),而用冒号调用的话系统默认将正在使用的对象作为方法的作用对象

Q:dofilerequire的区别

      Dofile加载文件需要指定路径,并每次调用都会从头执行文件的里面的方法,能实现实时的更新 不足之处就是多了太多的不必要的损耗。

Require则不需要带路径而且不会重新反复的执行;

 
 

Lua初学心得 及总结

标签:color   运行程序   参数   bool   col   问题:   类型   function   lin   

原文地址:http://www.cnblogs.com/cai-yuan/p/7614704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!