保存io.read()文件读取结果到字符串
Save io.read() file reading result to a string
所以我有一些代码:
io.input(file)
print(io.read())
result = io.read()
print(result)
io.close(file)
当我 运行 这个时,我得到
dasdasd
nil
其中“dasdasd”是文件的内容。这对我来说意味着 io.read() 的结果没有正确保存到字符串中。为什么会这样?我错过了什么?
Lua 不是 referentially transparent programming language, and io.read()
is not a pure function。如果你想多次使用调用它的输出,你不能多次调用它。将它保存到一个变量并使用它(就像你在第一次调用它后立即所做的那样)。
您假设 read()
每次都回到开头。这将需要执行 seek()
操作。 https://pgl.yoyo.org/luai/i/file%3Aseek
f = io .input( 'filename.txt' )
print( f :read() )
f :seek('set') -- set returns to the beginning
result = f :read()
print( result )
f :close()
所以我有一些代码:
io.input(file)
print(io.read())
result = io.read()
print(result)
io.close(file)
当我 运行 这个时,我得到
dasdasd
nil
其中“dasdasd”是文件的内容。这对我来说意味着 io.read() 的结果没有正确保存到字符串中。为什么会这样?我错过了什么?
Lua 不是 referentially transparent programming language, and io.read()
is not a pure function。如果你想多次使用调用它的输出,你不能多次调用它。将它保存到一个变量并使用它(就像你在第一次调用它后立即所做的那样)。
您假设 read()
每次都回到开头。这将需要执行 seek()
操作。 https://pgl.yoyo.org/luai/i/file%3Aseek
f = io .input( 'filename.txt' )
print( f :read() )
f :seek('set') -- set returns to the beginning
result = f :read()
print( result )
f :close()