gpt4 book ai didi

ruby-on-rails - Coffeescript ||= 模拟?

转载 作者:行者123 更新时间:2023-12-04 04:14:44 25 4
gpt4 key购买 nike

我主要是一名 Rails 开发人员,因此在为我公司的 Hubot 实例编写一个小脚本时,我希望完成以下工作:

robot.brain.data.contacts ||= {}

或者,仅在不存在的情况下才创建此新散列。这个想法是我想通过脚本动态添加一个联系人数组,这样我就不必修改 Hubot 的源代码,而且我显然不想覆盖我添加到其中的任何联系人。

问题:是否有像 Rails ||= 这样的快速小构造,我可以在 Coffeescript 中使用它来实现上述目标?

干杯。

最佳答案

您可以使用 ?=对于有条件分配:

speed ?= 75
?是 CoffeeScript 中的“存在运算符”,因此它将测试是否存在(不是真实性):
if (typeof speed === "undefined" || speed === null) speed = 75;

但是,生成的 JS 与您的情况略有不同,因为您正在测试对象属性,而不仅仅是变量,因此 robot.brain.data.contacts ?= {}结果如下:
var _base, _ref;
if ((_ref = (_base = robot.brain.data).contacts) != null) {
_ref;
} else {
_base.contacts = {};
};

更多信息: http://jashkenas.github.com/coffee-script/

关于ruby-on-rails - Coffeescript ||= 模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com