编者按:
上一节介绍了使用合并运算符(..)把多个变量连成一串,并更进一步的介绍了使用函数 string.format 来将变量插入到文本中。那这一节我们将沿着这个方向继续深入讲解。
通常我们在编写代码的时候会使用 local 定义 gma.cmd 函数来简化编写。
local cmd = gma.cmd
得益于 string.format ,我们可以创建一个包含字符串格式化的 cmd 函数:
local cmd = function(cmd命令) gma.cmd(cmd命令) end
添加字符串格式化后:
local cmd = function(语句, 参数1, 参数2) local cmdstring = string.format(语句, 参数1, 参数2) gma.cmd(cmd命令) end
但如果函数这样写就只有两个参数,实际上我们会需要尽可能多的参数,这时候我们可以用三个点(…)来定义不确定数量参数:
local cmd = function(语句, ... ) local cmdstring = string.format(语句, ... ) gma.cmd(cmd命令) end
去除中间变量简化后:
local cmd = function( ... ) gma.cmd(string.format(... )) end
这样我们就有了可以写入 CMD 命令的方法,而不仅仅是使用内置函数 gma.cmd
回到实际应用中,假设我们已经把上面的预定义语句添加到我们的插件开头,然后:
page = 3 exec = 2 cue = 1 name = 'intro' cmd('Store Executor %i.%i Cue %i "%s" /o', page, exec, cue, name) -> Store Executor 3.1 Cue 1 "intro" /o cmd('ClearAll') -> ClearAll
其中 % 为参数变量,需要注意的是上例中 cue 号为整数,但如果 cue = 1.5 则报错,因为我们使用了 %i (整数型)来定义参数。
下面介绍几个常用的定义参数格式
%i — 整数型
%g — 十进制数,更倾向于格式化为整型
%s — 字符串型
%q — 字符串包含”双引号”
所以上面例子可以改为:
Cue = 1.5 cmd('Store Executor %i.%i Cue %g %q /o', page, exec, cue, name) -> Store Executor 3.1 Cue 1.5 "intro" /o
同样道理,我们无须为了变量有小数点而烦恼,只需要给它定义 %g 即可!
欢迎您关注网站的微信公共平台,我会尽快将教程及资讯信息发布到微信公众平台上:
欢迎您加入我们的QQ群,一起讨论解答技术问题:
请注意,所有留言将通过审核后才会显示,请不必重复留言。
老张该更新了