给自己看的,很乱,没整理。
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
-- 要不断的实践和练习,要有自己的总结和想法。核实自己的总结和想法的对错。了解书中的思路。
-- 只有把书上的都基本上弄明白了,再总结 和想法,单节、单章都可以。围绕书。
-- 要脑子里有这个东西,用的时候能想出来。
--最主要的就是 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 的 替换 和相当的 备份