举例简介Lua中函数的基本用法

 更新时间:2015年07月02日 09:22:52   投稿:goldensun  
这篇文章主要介绍了举例简介Lua中函数的基本用法,--两个横线开始单行的注释,--[[加上两个[和]表示多行的注释--]],需要的朋友可以参考下

复制代码 代码如下:
function fib(n)
  if n < 2 then return 1 end
  return fib(n - 2) + fib(n - 1)
end

复制代码 代码如下:
-- 支持闭包及匿名函数:
function adder(x)
  -- 调用adder时,会创建用于返回的函数,并且能记住变量x的值:
  return function (y) return x + y end
end
a1 = adder(9)
a2 = adder(36)
print(a1(16))  --> 25
print(a2(64))  --> 100

复制代码 代码如下:
-- 返回值、函数调用和赋值都可以使用长度不匹配的list。
-- 不匹配的接收方会被赋为nil;
-- 不匹配的发送方会被忽略。

x, y, z = 1, 2, 3, 4
-- 现在x = 1, y = 2, z = 3, 而 4 会被丢弃。

复制代码 代码如下:
function bar(a, b, c)
  print(a, b, c)
  return 4, 8, 15, 16, 23, 42
end

x, y = bar('zaphod')  --> prints "zaphod  nil nil"
-- 现在 x = 4, y = 8, 而值15..42被丢弃。

复制代码 代码如下:
-- 函数是一等公民,可以是局部或者全局的。
-- 下面是等价的:
function f(x) return x * x end
f = function (x) return x * x end

复制代码 代码如下:
-- 这些也是等价的:
local function g(x) return math.sin(x) end
local g; g  = function (x) return math.sin(x) end
-- 'local g'可以支持g自引用。

复制代码 代码如下:
-- 顺便提一下,三角函数是以弧度为单位的。

复制代码 代码如下:
-- 用一个字符串参数调用函数,不需要括号:
print 'hello'  --可以工作。

相关文章

  • lua+love2d制作的2048游戏

    lua+love2d制作的2048游戏

    前面给大家分享的是一个超级简单版的使用lua实现的2048小游戏的代码,今天我们加上love2d游戏引擎,制作PC版的2048游戏。小伙伴们仔细读读本文吧。
    2015-03-03
  • Lua中函数与面向对象编程的基础知识整理

    Lua中函数与面向对象编程的基础知识整理

    函数在面对对象的编程中又被叫做方法,会受到作用域的制约,Lua中具有类等面向对象的特性,接下来我们就来看一下Lua中函数与面向对象编程的基础知识整理
    2016-06-06
  • Lua的协程(coroutine)简介

    Lua的协程(coroutine)简介

    这篇文章主要介绍了Lua的协程(coroutine)简介,本文讲解了coroutine的创建、协程的三种状态和yield函数的配合使用等内容,需要的朋友可以参考下
    2015-04-04
  • Lua时间转化的几个小例子

    Lua时间转化的几个小例子

    这篇文章主要介绍了Lua时间转化的几个小例子,本文直接给出3段例子代码,需要的朋友可以参考下
    2015-06-06
  • Lua模块和模块载入浅析

    Lua模块和模块载入浅析

    这篇文章主要介绍了Lua模块和模块载入浅析,Lua模块其实就是以.lua结尾的文件,模块载入可以用requeire或者dofile,需要的朋友可以参考下
    2014-09-09
  • Lua table简明总结

    Lua table简明总结

    这篇文章主要介绍了Lua table简明总结,table是lua唯一的数据结构,table 是 lua 中最重要的数据类型,本文详细讲解了table的相关知识,需要的朋友可以参考下
    2014-10-10
  • Lua模块与包学习笔记

    Lua模块与包学习笔记

    这篇文章主要介绍了Lua模块与包学习笔记,本文讲解了加载模块、加载机制等内容,需要的朋友可以参考下
    2014-12-12
  • Lua判断Table是否为空的方法(空的table即{})

    Lua判断Table是否为空的方法(空的table即{})

    这篇文章主要介绍了Lua判断Table是否为空的方法(空的table即{}),如何判断lua中的table是否是空的table呢,本文就试验了多个方法,最后得出比较好的判断方法,需要的朋友可以参考下
    2015-04-04
  • lua操作excel方法分享

    lua操作excel方法分享

    这篇文章主要介绍了lua操作excel方法分享,在网上几乎没有找到像样的示例资料,所以自己写了份,推荐给大家。
    2015-03-03
  • Lua教程(十九):C调用Lua

    Lua教程(十九):C调用Lua

    这篇文章主要介绍了Lua教程(十九):C调用Lua,本文讲解了C调用Lua基础知识、table操作、调用Lua函数等内容,需要的朋友可以参考下
    2015-04-04

最新评论