【发布时间】:2017-04-04 16:14:14
【问题描述】:
我在 Fibaro 家庭自动化系统中整理了一些脚本(“场景”),需要向自己介绍如何在 Lua 中做好事。 Fibaro 有自己的调试功能,但对于 Lua 功能的简单测试,不必一直在 Fibaro Lua 场景界面中工作。
有一个函数fibaro:debug处理界面中信息的简单打印。基本上print 在控制台上的作用。
所以,我想在我的函数中做的是为目前可用的这两个函数之一分配一个别名。
我尝试将其作为默认值处理:
local printFunc = fibaro:debug or print;
这不起作用。显式 IF/ELSE 块也失败:
if(fibaro:debug == nil) then printFun = fibaro:debug;else printFun =print;end;
我该怎么做?
【问题讨论】:
-
问题标题具有误导性。函数重载是让调用者根据参数的数量(和/或)类型选择具有相同名称的多个函数的选项。一个相关的概念是默认参数,这两个概念的功能是相当的。您似乎要求的是遮蔽、替换(或覆盖)功能。
标签: function lua functional-programming variable-assignment