lua 初接触 --- The first time use Lua for programing

 

  The first time use Lua for programing 

Wang Xiao 

 

  1. 关于 lua 的变量类型:

    lua 变量的定义与matlab有点不同:

 



 

    local d , f = 5 ,10 --声明局部变量 d,f。

    d , f = 5, 10;  --声明全局变量 d,f。
    d, f = 10        --[[声明全局变量 d,f,其中 f 的值是 nil--]]

 



 

    如果只是定义没有初始化,则静态存储变量被隐式初始化为 nil。

  Lua 赋值时会将第一个值赋给第一个变量,第二个值赋给第二个变量,依次类推。

  来一个比较叼的交换语句:

 



 

    local a,b    -- 变量定义

    a = 10     b = 30

    print("value of a:", a)

    print("value of b:", b)

    b,a = a,b    -- 直接将a and b 对换,有点叼有木有,连中间变量都不需要的。

    print("value of a:", a)

    print("value of b:", b)

    f = 70.0/3.0

    print("value of f", f)

 



  

  2. 两个需要注意的地方: 

    若想要跳出循环,只要 break 语句即可。

  



  3. 函数的定义:

  --[[ function returning the max between two numbers --]]

  function max(num1, num2)

    if(num1 > num2) then 

      result = num1;

    else

      result = num2;

    end

    return result;

  end

 

  -- 调用函数

  print("The maximum of the two numbers is", max(10, 4))

  print("The maximum of the two numbers is", max(5, 6))

 

  -- 执行结果

  The maximum of the two numbers is  10

  The maximum of the two numbers is  6

 

 

    在 Lua 中,使用 ... 作为参数可以创建参数个数可变的函数,即: 变参函数。

  

  



  4. 字符串

  string1 = "Lua"

  print("\"String 1 is\"", string1)

  string2 = 'Tutorial'

  print("String 2 is", string2)

 

  string3 = [[ "Lua Tutorial" ]]

  print("String 3 is", string3)

 

  -- the output results

  "String 1" is    Lua

  String 2 is   Tutorial

  String 3 is   "Lua Tutorial"

 

  

  

 

 

  -- the output are:

  Basic formating Lua Tutorial 

  Date formating 02/01/2014

  0.3333

  



  5. 数组:

  Lua 的索引是从1开始的。

   

  多维数组:

 

  array = {"Lua", "Tutorial"} 

  function elementlterator (collection)

    local index = 0

    local count = #collection

    -- 返回闭包函数

    return function 

      index = index + 1

      if index <= count 

      then 

        -- 返回迭代器的当前元素

        return collection[index]

      end

        end

    end

 

  for element in elementlterator(array)

  do 

    print(element)

  end

 



 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

  

 

时间: 2024-08-02 09:08:13

lua 初接触 --- The first time use Lua for programing的相关文章

Lua中计算、执行字符串中Lua代码的方法

  这篇文章主要介绍了Lua中计算.执行字符串中Lua代码的方法,类似JavaScript中eval函数的功能,在Lua中也可以实现,需要的朋友可以参考下 一.Lua中执行字符串 运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢? 比如,local param = "7*100", 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下 字符串前面 加个 "return" 然后loadstring以后得到一个functio

Apache Storm 衍生项目 &amp; Apache Flink初接触

storm-yarn 概要 storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街.如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能.storm-yarn就是这样一个项目,由yahoo实现,目前已经开源. 除了storm-yarn试图将storm整合进hadoop,以提升hadoop的分析处理能力的尝试之外,Hortonworks也高调宣布在2014年推出整合了storm的hadoop发行版.当然Horton

请问工作流是用Activiti5还是jBPM呢,初接触,请指教!

问题描述 请问工作流是用Activiti5还是jBPM呢,初接触,请指教! 解决方案 解决方案二:自己就没有一点设计吗?解决方案三:自己都学习看下哪种好用

初接触云计算,在实验配置Auto-Scale时候,报错You must specify a region. You can also configure you

问题描述 初接触云计算,在实验配置Auto-Scale时候,报错Youmustspecifyaregion.Youcanalsoconfigureyourregionbyrunning"awsconfigure".这个怎么解决?

lua与C(二):LUA调用c

在lua中调用C函数    c中的函数应该这样准备  注册单个函数:   所有可被lua调用的函数型为 typedef int (*lua_Cfunction)(lua_State*L)   例如 其中返回值是其压入栈的函数返回值的数量 2.然后将函数置入栈中 lua_pushfunction() 3.将函数从栈中推给lua  lua_setglobal(L,name) name是在lua中这个函数的名字   注册一些函数,组成一个模块 1.首先定义这些函数 static int l_dir(l

Lua中计算、执行字符串中Lua代码的方法_Lua

一.Lua中执行字符串 运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢? 比如,local param = "7*100", 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下 字符串前面 加个 "return" 然后loadstring以后得到一个function 然后执行获得700的返回值,这样通过转化,得到的结果如下: 二.以字符串形式执行Lua代码 有时候,我们在代码中希望能够动态的切换上下文,改变程序的处理

Lua中类的实现原理探讨(Lua中实现类的方法)_Lua

Lua中没有类的概念,但我们可以利用Lua本身的语言特性来实现类. 下文将详细的解释在Lua中实现类的原理,涉及到的细节点将拆分出来讲,相信对Lua中实现类的理解有困难的同学将会释疑. 类是什么? 想要实现类,就要知道类到底是什么. 在我看来,类,就是一个自己定义的变量类型.它约定了一些它的属性和方法,是属性和方法的一个集合. 所有的方法都需要一个名字,即使是匿名函数实际上也有个名字.这就形成了方法名和方法函数的键值映射关系,即方法名为键,映射的值为方法函数. 比如说有一个类是人,人有一个说话的

Lua编程示例(四):Lua标准库之表库、字符串库、系统库_Lua

tb1 = { "alpha","log","gamme"} print(table.concat(tb1," , ")) print(table.concat(tb1,"\n",nil,2)) print() tb1[88.99] = 'aaa' --返回索引值最大的值,并且计算小数 print(table.maxn(tb1)) print() --默认删除索引最大的元素并返回 print(table.r

Lua教程(二十):Lua调用C函数_Lua

Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性.对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数.对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L).简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作为其唯一的参数,实现者可以通过该指针进一步获取Lua代码中实际传入的参数.返回值是整型,表示该C函数