以下代码可以帮我翻译成很容易理解的话,谢谢!

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();
我知道这些代码实现的功能但是不理解这些代码是什么意思?帮忙翻译下,说明每个代码的作用,代码的工作原理,谢谢!

慕的地10843
浏览 61回答 2
2回答

慕仙森

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();                            -- 关闭fileend   FileSaveLoad();                          -- 执行FileSaveLoad函数

郎朗坤

io可以理解为一个库,其它就是一个table, lua里面的一切数据结构都是table(userdata用C语言扩展的不算)assert(file)表示如果打开失败,就抛出异常直接退出file就是类型就是iofile:read, 是file.read(file)的语法糖,就是表自己做为函数的第一个参数FileSaveLoad调用在end 之后,函数已经定义完了,不是循环调用。函数就是把一个in.lua复制到out.lua中去。
打开App,查看更多内容
随时随地看视频慕课网APP