读lua代码,帮我翻译成很容易理解的话,谢谢! function FileSaveLoad()  

读lua代码,帮我翻译成很容易理解的话,谢谢!
function FileSaveLoad()
  local file = io.open("c:\\in.lua", "r");
  assert(file);
  local data = file:read("*a"); -- 读取所有内容
  file:close();
  file = io.open("c:\\out.lua", "w");
  assert(file);
  file:write(data);
  file:close();
  end
  FileSaveLoad();
我知道这些代码实现的功能但是不理解这些代码是什么意思?帮忙翻译下,说明每个代码的作用,代码的工作原理,谢谢!


function FileSaveLoad()                    -- 定义FileSaveLoad函数
  local file = io.open("c:\\in.lua", "r"); -- 以只读方式打开c:\in.lua,句柄为file
  assert(file);                            -- 如果打开失败,则抛出异常
  local data = file:read("*a");            -- 读取file的所有内容,存放在data
  file:close();                            -- 关闭file
  file = io.open("c:\\out.lua", "w");      -- 以写的方式打开c:\out.lua,句柄为file
  assert(file);                            -- 如果打开失败,则抛出异常
  file:write(data);                  -- 将data(其实就是c:\in.lua)的内容写入file
  file:close();                            -- 关闭file
end

  FileSaveLoad();                          -- 执行FileSaveLoad函数追问

函数是每个有功能的代码都可以叫函数吧?
local是声明file为局部变量是吗,io是什么意思?open大概就是打开的意思吧,

assert(file)抛出异物什么意思?

file是什么类型呢,为什么可以file:read这样写呢?

这最后的FileSaveLoad不是就无限循环了吗?

可不可以这样理解,file就是一个打开记事本,可视为假,没注意看原来字符串不一样,意思就是把in.lua的内容转移到out.lua里面对吗?

追答

这些问题都不是可以用几句话就能解释明白的,至少我目前还没有这个能力,我给你的建议是找一本编程语言的书,从头到尾仔细阅读一遍。另外,你需要加深下对系统的理解...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-15
io可以理解为一个库,其它就是一个table, lua里面的一切数据结构都是table(userdata用C语言扩展的不算)
assert(file)表示如果打开失败,就抛出异常直接退出
file就是类型就是io
file:read, 是file.read(file)的语法糖,就是表自己做为函数的第一个参数

FileSaveLoad调用在end 之后,函数已经定义完了,

不是循环调用。
函数就是把一个in.lua复制到out.lua中去。追问

有点不明白,后面不是调用FileSaveLoad了吗,调用了不是就会再执行吗?

相似回答
大家正在搜