码迷,mamicode.com
首页 > 其他好文 > 详细

lua基础(2)

时间:2017-11-21 15:52:02      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:erro   操作   数据   install   exec   exe   安装库   color   postgre   

错误处理:

技术分享图片
local function add(a,b)
   assert(type(a) == "number", "a 不是一个数字")
   assert(type(b) == "number", "b 不是一个数字")
   return a+b
end
add(10)


#如果正确执行,不做任何操作,否则第二个参数当做错误信息。
assert
技术分享图片
error (message [, level])

终止正在执行的函数,并返回message的内容作为错误信息(error函数永远都不会返回)
通常情况下,error会附加一些错误位置的信息到message头部。
Level参数指示获得错误的位置:
Level=1[默认]:为调用error位置(文件+行号)
Level=2:指出哪个调用error的函数的函数
Level=0:不添加错误位置信息
error

数据库访问:

技术分享图片
LuaSQL。他是开源的,支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。
可以使用luarocks安装库
luarocks install luasql-sqlite3
luarocks install luasql-postgres
luarocks install luasql-mysql
luarocks install luasql-sqlite
luarocks install luasql-odbc
_______________________________________________
require "luasql.mysql"

--创建环境对象
env = luasql.mysql()

--连接数据库
conn = env:connect("数据库名","用户名","密码","IP地址",端口)

--设置数据库的编码格式
conn:execute"SET NAMES UTF8"

--执行数据库操作
cur = conn:execute("select * from role")

row = cur:fetch({},"a")

--文件对象的创建
file = io.open("role.txt","w+");

while row do
    var = string.format("%d %s\n", row.id, row.name)

    print(var)

    file:write(var)

    row = cur:fetch(row,"a")
end


file:close()  --关闭文件对象
conn:close()  --关闭数据库连接
env:close()   --关闭数据库环境
View Code

面向对象:

lua中对象就是table

Role = { hp = 100 }
function Role.addHp(hp)
    Role.hp = Role.hp + hp
end
 
Role.addHp(50)
print(Role.hp)

类:

Lua 没有类的概念,不过可以通过元表(metatable)来实现与原型 prototype 类似的功能,而 prototype 与类的工作机制一样,都是定义了特定对象行为。Lua 里的原型特性主要使用元表的 __index 事件来实现,这样当调用对象没定义的方法时,会向其元表的 __index 键(事件)查找。

技术分享图片
Role = { hp = 100 }
function Role:new(o)
    o = o or {}  
    setmetatable(o, self)
    self.__index = self
    self.aaa=safasdf
    return o
end
function Role:addHp(hp)
    self.hp = self.hp + hp
end
 
r = Role:new()
for i ,j in pairs(r) 
do
    print(i,j..aaa)
    print(1)
    end
r:addHp(50)
print(r.hp)
print(r.aaa)
可以理解为new是类

继承同理,写个函数,定义当前的表的元表是父类(也是表),执行这个方法相当于实例化对象(返回一个表)。

lua基础(2)

标签:erro   操作   数据   install   exec   exe   安装库   color   postgre   

原文地址:http://www.cnblogs.com/drchen/p/7873303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!