将字符串版本信息转换为整数以便于比较

时间:2016-06-29 16:20:12

标签: string lua integer version

我正在设计一个运行用Lua编写的最终用户脚本的程序。该程序定义了一个接口,告诉我们将多少参数传递给哪个函数,它们的顺序等等。在将来的某个时刻,接口可能会发生变化,因此我希望将主机程序的版本信息传递给脚本。我的常见做法是使用MAJOR.MINOR.PATCH格式。

目标是尽可能简化表示,以便可以使用算术运算处理信息,如下所示:

if program.version < SCRIPT_SUPPORTS_VERSION then
    error ("This version is not supported, please upgrade...")
end

常识要求使用以16为基数编写的整数,其中每个字节代表版本格式的一部分。像这样:

-- Version 1.3.2
-- Compatible with versions >=1.2.0
--
local program = {}
program.version = 0x010302
local SCRIPT_SUPPORTS_VERSION = 0x010200

正如我之前提到的,这是在思考问题时首先想到的问题,而且似乎有效。另一方面,十六进制数字对某些人来说可能看起来很可怕。

我想了解您的意见,请提出替代解决方案。

0 个答案:

没有答案