博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LUA 拾遗(函数)
阅读量:4953 次
发布时间:2019-06-12

本文共 1535 字,大约阅读时间需要 5 分钟。

(返回值)

        return arg[n]     -- 返回第n个返回值,index从1开始
(传参)

function Window (options)    -- check mandatory options    if type(options.title) ~= "string" then    error("no title" )    elseif type(options.width) ~= "number" then    error("no width" )    elseif type(options.height) ~= "number" then    error("no height")    end    print(options.title)endw = Window {    x=0, y=0, width=300, height=200,    title = "-- > mark" , background= "blue",    border = true}

 

(闭包)

function newCounter()   local i = 0   return function () -- anonymous function     i = i + 1    return i   end end  c1 = newCounter() print(c1()) --> 1 print(c1()) --> 2

关键在于理解upvalue(external local variable ), 这个变量是每个闭包独有的且是静态的!

 

(强大的迭代器) -- 一般难写易用

function allwords()    local file = io.open("test.lua", "r")    local line = file:read() -- current line    local pos = 1 -- current position in the line    return function () -- iterator function        while line do -- repeat while there are lines            local s, e = string.find(line, "%w+" , pos)            if s then -- found a word?                pos = e + 1 -- next position is after this word                return string.sub(line, s, e) -- return the word            else                line = file:read() -- word not found; try next line                pos = 1 -- restart from first position            end        end        file:close()        return nil -- no more lines: end of traversal    endendfor word in allwords() do    print(word)end

 

转载于:https://www.cnblogs.com/mark-huang/archive/2013/05/02/3055527.html

你可能感兴趣的文章
数据库优化,性能分析
查看>>
保留小数点二位
查看>>
visio画图ER图表和字段注释
查看>>
数制转换问题:确定进制
查看>>
让简单的每天十条,亮点越来越多
查看>>
[批处理]守护NodeJS进程
查看>>
POJ2157 Check the difficulty of problems 概率DP
查看>>
欺骗眼球的滚动条 (javascript)
查看>>
PHP数组练习
查看>>
迷宫生成算法
查看>>
poj_2104K-th Number
查看>>
网页添加qq咨询
查看>>
队列课下作业
查看>>
【计算机视觉】行为识别(action recognition)相关资料
查看>>
【Qt开发】解决Qt程序在Linux下无法输入中文的办法
查看>>
迷茫的Java程序员
查看>>
修改环境变量
查看>>
boost 库的安装
查看>>
使用nc命令传输文件和文件夹
查看>>
python 文件操作
查看>>