编译、运行、错误
2010-08-23 14:24
260 查看
给自己看的,很乱,没整理。
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
-- 要不断的实践和练习,要有自己的总结和想法。核实自己的总结和想法的对错。了解书中的思路。
-- 只有把书上的都基本上弄明白了,再总结 和想法,单节、单章都可以。围绕书。
-- 要脑子里有这个东西,用的时候能想出来。
--最主要的就是 table 的元表 与元方法。面向对象编程。c与lua 的相互调用。
-- 多少都有一点了解了。基本上不怎么了解的 就剩下 userdate 和 协程了。
-- 函数、闭包、编译执行。模块、环境。
-- 编译、执行、错误分析。
--[[
f = loadstring("i=i+1")
i = 0
for i =1 ,10,2 do
f();
end
print(i)
f = loadstring("local x =10 return x+20")
print(f())
-- loadstring 装载程序块。 loadfile、dofile 是装载文件。loadfile 只编译一次,可以多次运行
dofile 运行一次,编译一次。loadfile 有错误会返回nil 和错误信息。
loadfile("add.lua") add.lua 只是被编译了,没有被定义。
]]
--[[
-- loadstring 总是在全局变量中编译它的串。
local i =100
f= loadstring(" i = i+ 1")
g= function() i = i+1 end
f() --f()访问全局变量。会报错。
g() -- i = 101
print(i)
]]
--[[
--loadstring 一般用于程序外部的代码。一般是一段语句。如果想要加载表达式。需要在表达式前加return。
print "enter your expression:"
local l = io.read()
local func = assert(loadstring("return " .. l))
print("the value of your expression is " .. func()) --为什么不能输入字符串。
]]
-- require 会自动搜索文件目录,加载文件。会判断文件是否加载。避免同一文件多次加载。
-- assert 会报错。发出错误信息。
--print("please input the number")
--sn = assert(io.read("*number"),"invalid number")
--print(n)
--[[
print("please input a number ")
n = io.read()
assert(tonumber(n),"invalid number "..n.." is not a number")
]]
--assert(1==2,"1~=2")
--file = assert(io.open("jing.lua","r"))
--pcall 再保护模式下执行函数内容。同时捕获所有的异常和错误。
--[[
local status , err = pcall(function() a = "a" + 1 end)
print(err)
local status ,err = pcall(function() error("myerror") end)
print(err)
]]
--[[
function foo(str)
if type(str) ~= "string" then
error("string expect")
end
end
foo({ x =1 })
]]
-- 自己的缺点: 不实践。总给自己坏的心理暗示。
-- 两个常用的debug 函数。debug.debug 和 debug.traceback
--print(debug.traceback())
--编译、执行、错误处理
--主要知识点:1、loadstring 2 dofile 与 loadfile 现在是luaL_dofile ?
-- 3、assert 的处理。 编译与运行。 是 assert 还是 error()。
---------------------------------------------------------------------------------
-- 环境 主要是 ——G 的 替换 和相当的 备份
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
-- 要不断的实践和练习,要有自己的总结和想法。核实自己的总结和想法的对错。了解书中的思路。
-- 只有把书上的都基本上弄明白了,再总结 和想法,单节、单章都可以。围绕书。
-- 要脑子里有这个东西,用的时候能想出来。
--最主要的就是 table 的元表 与元方法。面向对象编程。c与lua 的相互调用。
-- 多少都有一点了解了。基本上不怎么了解的 就剩下 userdate 和 协程了。
-- 函数、闭包、编译执行。模块、环境。
-- 编译、执行、错误分析。
--[[
f = loadstring("i=i+1")
i = 0
for i =1 ,10,2 do
f();
end
print(i)
f = loadstring("local x =10 return x+20")
print(f())
-- loadstring 装载程序块。 loadfile、dofile 是装载文件。loadfile 只编译一次,可以多次运行
dofile 运行一次,编译一次。loadfile 有错误会返回nil 和错误信息。
loadfile("add.lua") add.lua 只是被编译了,没有被定义。
]]
--[[
-- loadstring 总是在全局变量中编译它的串。
local i =100
f= loadstring(" i = i+ 1")
g= function() i = i+1 end
f() --f()访问全局变量。会报错。
g() -- i = 101
print(i)
]]
--[[
--loadstring 一般用于程序外部的代码。一般是一段语句。如果想要加载表达式。需要在表达式前加return。
print "enter your expression:"
local l = io.read()
local func = assert(loadstring("return " .. l))
print("the value of your expression is " .. func()) --为什么不能输入字符串。
]]
-- require 会自动搜索文件目录,加载文件。会判断文件是否加载。避免同一文件多次加载。
-- assert 会报错。发出错误信息。
--print("please input the number")
--sn = assert(io.read("*number"),"invalid number")
--print(n)
--[[
print("please input a number ")
n = io.read()
assert(tonumber(n),"invalid number "..n.." is not a number")
]]
--assert(1==2,"1~=2")
--file = assert(io.open("jing.lua","r"))
--pcall 再保护模式下执行函数内容。同时捕获所有的异常和错误。
--[[
local status , err = pcall(function() a = "a" + 1 end)
print(err)
local status ,err = pcall(function() error("myerror") end)
print(err)
]]
--[[
function foo(str)
if type(str) ~= "string" then
error("string expect")
end
end
foo({ x =1 })
]]
-- 自己的缺点: 不实践。总给自己坏的心理暗示。
-- 两个常用的debug 函数。debug.debug 和 debug.traceback
--print(debug.traceback())
--编译、执行、错误处理
--主要知识点:1、loadstring 2 dofile 与 loadfile 现在是luaL_dofile ?
-- 3、assert 的处理。 编译与运行。 是 assert 还是 error()。
---------------------------------------------------------------------------------
-- 环境 主要是 ——G 的 替换 和相当的 备份
相关文章推荐
- qt编译运行错误—无法启动此应用程序,因为计算机中丢失XXX.dll
- Win 7+sp1+VS2010编译程序出现Ado运行错误
- 总结Unity 初学者容易犯的编译与运行时错误(第二部分)
- mxnet 编译后运行的第一个demo train_mnist.py时的错误
- android studio编码格式编译运行异常:Error:(1, 1) 错误: 非法字符: '\ufeff';
- 编译错误和运行错误
- 【转】 64位ubuntu编译运行android2.3其他错误解决——适用于11.04(64位)
- Delphi 运行时和编译错误信息表
- 运行时错误检查(/RTC)编译选项及实现原理 .
- Vs.net 2005编译或者运行时报“没有找到MSVCR80D.dll...”错误的解决办法
- 很偏僻的运行错误,编译成功,运行失败,原因:语句太长
- C# asp.net常见编译|运行错误
- UNIX网络编程—SCTP编译运行错误及解决
- gcc新版本号引起的编译错误(命令运行时的外部库输入位置)
- 解决VSTO项目重定向到.NET Framework 4的编译和运行时错误
- 解决新建Support7Demos的sample时出现编译错误和运行报错出现的问题
- atof函数在不包含头文件stdlib.h的情况下也能编译运行,但是转换结果是错误的,为什么
- 运行时错误检查(/RTC)编译选项及实现原理
- C程序访问hadoop程序编译通过后在运行的时候出现:WARN util.NativeCodeLoader错误。
- ubuntu 64 编译sdk,运行android命令出现错误