我在 Lua 4 中编写了一个小程序。在它产生的输出中,我将程序版本号存储为字符串,如下所示:
AppVersion = "1.6.2"
如何解析此字符串以检查记录的版本号是否等于或小于当前程序版本号?
您可以使用以下代码:
AppVersion = "1.6.2"
recordedVersion = "1.7.2"
_, _, v1, v2, v3 = strfind( AppVersion, "(%d+)%.(%d+)%.(%d+)" )
_, _, r1, r2, r3 = strfind( recordedVersion, "(%d+)%.(%d+)%.(%d+)" )
(手册的相关部分在这里)。
然后您可以将每个版本的三个组件转换为数字并进行比较。
对于 Lua 5.1,我最终使用了以下代码:
AppVersion = "1.6.2"
local major, minor, patch = string.match(AppVersion, "(%d+)%.(%d+)%.(%d+)")