如何修复Lua写入随机数到CSV文件输出为nil的问题
问题原因
math.randomseed()函数本身没有返回值,你将该函数的返回值赋值给num变量,导致num的值为nil,最终写入文件的内容全部是nil- 随机种子不需要每次调用生成函数时都设置,仅需在程序启动时设置一次即可,频繁调用
math.randomseed()反而会导致生成的随机数规律性变强,甚至出现大量重复 - 写入文件的内容和你预期的目标不匹配,你需要写入的是拼接了
TETB前缀的随机字符串,而非随机种子函数的返回值
修复方案
将随机种子的设置移到函数外,函数内部直接生成目标格式的字符串后写入文件即可,修复后的代码如下:
-- 程序启动时仅设置一次随机种子 math.randomseed(os.clock() * 100000000000) function randomNum2() -- 生成符合要求的随机字符串 local result_str = "TETB" .. math.random(1000000000) -- 打开文件写入内容 local file = io.open("result.csv", "a+") if file then file:write(result_str .. "\n") file:close() end return result_str end
内容的提问来源于stack exchange,提问作者user16850716
相关产品推荐
相关产品推荐

