--带一个返回值的函数
function rectangleArea(width, height)
local area = width * height
return area
end
print("320x480的长方形的面积:" .. rectangleArea(32, 64)) --320x480的长方形的面积:2048
--定义计算长方形面积和周长函数
function caleRectangle(width, height)
local area = width * height
local perimeter = (width + height) * 2
return area,perimeter
end
------------------------------------------------
--带两个返回值的函数
--获得计算长方形面积和周长
local area, perimeter = caleRectangle(10, 15)
print("宽10 高15,长方形面积:" .. area .. " 长方形周长:" .. perimeter) --宽10 高15,长方形面积:150 长方形周长:50
-------------------function里面的function-----------------------------
function calculate(opr, a, b)
--定义+函数
function add(a, b)
return a + b
end
--定义-函数
function sub(a, b)
return a - b
end
local result
if opr == "+" then
result = add(a, b)
else
result = sub(a, b)
end
return result
end
local res1 = calculate("+", 10, 5)
print("10 + 5 = " .. res1) --10 + 5 = 15
local res2 = calculate("-", 10, 5)
print("10 - 5 = " .. res2) --10 - 5 = 5
-------------------function间接的传参数-----------------------------
--定义计算长方形面积函数
function rectangleArea(width, height)
local area = width * height
return area
end
--定义计算三角形面积函数
function triangleArea(bottom, height)
local area = 0.5 * bottom * height
return area
end
function getArea(type)
local returnFunction
if type == "rect" then --rect 表示长方形
returnFunction = rectangleArea
else --tria 表示三角形
returnFunction = triangleArea
end
return returnFunction
end
--获得计算三角形面积函数
local area = getArea("tria")
print("底10 高13,三角形面积:" .. area(10, 15)) --底10 高13,三角形面积:75
--获得计算长方形面积函数
local area = getArea("rect")
print("宽10 高15,计算长方形面积:" .. area(10, 15)) --宽10 高15,计算长方形面积:150
------------------------------------------------
function getArea(type)
local returnFunction
if type == "rect" then --rect 表示长方形
returnFunction = function(width, height)
local area = width * height
return area
end
else --tria 表示三角形
returnFunction = function(bottom, height)
local area = 0.5 * bottom * height
return area
end
end
return returnFunction
end
--获得计算三角形面积函数
local area = getArea("tria")
print("底10 高13,三角形面积:" .. area(10, 15))--底10 高13,三角形面积:75
--获得计算长方形面积函数
local area = getArea("rect")
print("宽10 高15,计算长方形面积:" .. area(10, 15))--宽10 高15,计算长方形面积:150
-------------------定义对象的接口-----------------------------
Student = {id = 100, name = "Tony"}
function Student.toString()
local s = "Name:" .. Student.name .. " id:" .. Student.id
return s
end
print(Student.toString()) --Name:Tony id:100
------------------------------------------------
Student = {id = 100, name = "Tony"}
function Student:toString()
local s = "Name:" .. self.name .. " id:" .. self.id
return s
end
print(Student:toString()) --Name:Tony id:100
------------------------------------------------
Student = {id = 100, name = "Tony"}
function Student:toString()
local s = "Name:" .. self.name .. " id:" .. self.id
return s
end
function Student:create(o)
o = o or{}
setmetatable(o, self)
self.__index = self
return o
end
student1 = Student:create({id = 200, name = "Tom"}) --Name:Tom id:200
print(student1:toString())
student2 = Student:create({id = 300, name = "Ben"}) --Name:Ben id:300
print(student2:toString())
-------------------局部变量和全局变量-----------------------------
local global = 1
function f()
local local1 = 2
global = global + 1
return global
end
f()
print(global) --2
print(local1) --nil
function rectangleArea(width, height)
local area = width * height
return area
end
print("320x480的长方形的面积:" .. rectangleArea(32, 64)) --320x480的长方形的面积:2048
--定义计算长方形面积和周长函数
function caleRectangle(width, height)
local area = width * height
local perimeter = (width + height) * 2
return area,perimeter
end
------------------------------------------------
--带两个返回值的函数
--获得计算长方形面积和周长
local area, perimeter = caleRectangle(10, 15)
print("宽10 高15,长方形面积:" .. area .. " 长方形周长:" .. perimeter) --宽10 高15,长方形面积:150 长方形周长:50
-------------------function里面的function-----------------------------
function calculate(opr, a, b)
--定义+函数
function add(a, b)
return a + b
end
--定义-函数
function sub(a, b)
return a - b
end
local result
if opr == "+" then
result = add(a, b)
else
result = sub(a, b)
end
return result
end
local res1 = calculate("+", 10, 5)
print("10 + 5 = " .. res1) --10 + 5 = 15
local res2 = calculate("-", 10, 5)
print("10 - 5 = " .. res2) --10 - 5 = 5
-------------------function间接的传参数-----------------------------
--定义计算长方形面积函数
function rectangleArea(width, height)
local area = width * height
return area
end
--定义计算三角形面积函数
function triangleArea(bottom, height)
local area = 0.5 * bottom * height
return area
end
function getArea(type)
local returnFunction
if type == "rect" then --rect 表示长方形
returnFunction = rectangleArea
else --tria 表示三角形
returnFunction = triangleArea
end
return returnFunction
end
--获得计算三角形面积函数
local area = getArea("tria")
print("底10 高13,三角形面积:" .. area(10, 15)) --底10 高13,三角形面积:75
--获得计算长方形面积函数
local area = getArea("rect")
print("宽10 高15,计算长方形面积:" .. area(10, 15)) --宽10 高15,计算长方形面积:150
------------------------------------------------
function getArea(type)
local returnFunction
if type == "rect" then --rect 表示长方形
returnFunction = function(width, height)
local area = width * height
return area
end
else --tria 表示三角形
returnFunction = function(bottom, height)
local area = 0.5 * bottom * height
return area
end
end
return returnFunction
end
--获得计算三角形面积函数
local area = getArea("tria")
print("底10 高13,三角形面积:" .. area(10, 15))--底10 高13,三角形面积:75
--获得计算长方形面积函数
local area = getArea("rect")
print("宽10 高15,计算长方形面积:" .. area(10, 15))--宽10 高15,计算长方形面积:150
-------------------定义对象的接口-----------------------------
Student = {id = 100, name = "Tony"}
function Student.toString()
local s = "Name:" .. Student.name .. " id:" .. Student.id
return s
end
print(Student.toString()) --Name:Tony id:100
------------------------------------------------
Student = {id = 100, name = "Tony"}
function Student:toString()
local s = "Name:" .. self.name .. " id:" .. self.id
return s
end
print(Student:toString()) --Name:Tony id:100
------------------------------------------------
Student = {id = 100, name = "Tony"}
function Student:toString()
local s = "Name:" .. self.name .. " id:" .. self.id
return s
end
function Student:create(o)
o = o or{}
setmetatable(o, self)
self.__index = self
return o
end
student1 = Student:create({id = 200, name = "Tom"}) --Name:Tom id:200
print(student1:toString())
student2 = Student:create({id = 300, name = "Ben"}) --Name:Ben id:300
print(student2:toString())
-------------------局部变量和全局变量-----------------------------
local global = 1
function f()
local local1 = 2
global = global + 1
return global
end
f()
print(global) --2
print(local1) --nil