--------------------
--lua 创建链表 并打印
list = nil
for line in io.lines() do
list = {next = list, value = line}
end
local l = list
while l do
print(l.value)
l = l.next
end
---------------------
ployline = {color = "blue", thickness = 2, npoints = 4,
{x = 0, y = 0},
{x = -10, y = 0},
{x = -10, y = 1}
}
print(ployline[2].x)
print(ployline[4].x)
-----------------------
---------------
--cache小例子---
---------------
local test_cache = {}
function set_cache(cache, key, value)
-- body
if cache == nil then
cache = test_cache
end
cache[key] = value
end
function get_cache( cache, key )
if cache == nil then
cache = test_cache
end
if cache[key] ~= nil then
return cache[key]
end
end
function print_cache( cache )
-- body
if cache == nil then
cache = test_cache
end
for k, v in ipairs(cache) do
print("key=" .. k , "value=" .. v)
end
end
local test_msg = {"aaa", "bbb", "ccc"}
for k , v in ipairs(test_msg) do
set_cache(test_cache, k, k)
end
print_cache(test_cache)
-----------------------------
--计算平均数
function avg( ... )
local result
local args = { ... }
for i,v in ipairs(args) do
result = result + v
end
print("总共传入的参数个数为" .. #args)
return result/#args
end
------------------------------
a = {
{name = "aa",hp = "50"},
{name = "zz",hp = "30"},
{name = "cc",hp = "70"},
}
--将table a 从小到大排列,然后输出
table.sort( a, function(a,b) return (a.hp < b.hp) end)
for i,v in ipairs(a) do
print(i,v.hp)
end
----------------------------------
--想根据学生的成绩从高到低对学生进行排序
names = {"Peter", "Paul", "Mary"}
grades = {Mary = 10, Paul = 7, Peter = 8}
table.sort( names, function(n1, n2) return (grades[n1] > grades[n2]) end)
-----------------------------------
--一个闭合函数
function count( ... )
local x = 1
return function()
x = x + 1
return x
end
end
c = count()
print(c())
print(c())
print(c())
-----------------------------------
--将函数存储在table中
--方式一
Lib = {}
Lib.foo = function (x,y) return x + y end
Lib.goo = function (x,y) return x - y end
print(Lib.foo(1,2)); --> 3
print(Lib.goo(1,2)); --> -1
--方式二
Lib = {
foo = function (x,y) return x + y end,
goo = function (x,y) return x - y end }
print(Lib.foo(1,2)); --> 3
print(Lib.goo(1,2)); --> -1
--方式三
Lib = {}
function Lib.foo (x,y)
return x + y
end
function Lib.goo (x,y)
return x - y
end
print(Lib.foo(1,2)); --> 3
print(Lib.goo(1,2)); --> -1
---------------------------------------
--声明局部函数的两种方式
--方式一
local f = function ( ... )
-- body
end
--方式二
local function function_name( ... )
-- body
end
---------------------------------------
--递归函数
local function fact( n )
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print(fact(5))
----------------------------------------
Lua 函数小练习
猜你喜欢
转载自blog.csdn.net/u010859498/article/details/81316486
今日推荐
周排行