在函数内构建哈希

时间:2011-04-04 22:09:34

标签: krl

在给定某些参数的情况下,我有一个返回哈希的函数:

build_message = function(from, to, bcc, subject, tag, htmlbody, textbody, replyto) {
    message = {"From": from,
        "To": to,
        "Subject": subject,
        "HtmlBody": htmlbody,
        "TextBody": textbody};
    message.encode();
}

其中一些参数,例如bccreplyto是可选的。如果调用者为它们提供空值,则它们不能出现在我返回的哈希中。也就是说,如果"Bcc": bcc参数为非null,则bcc必须仅出现在哈希中。

这是我的第一次尝试,但是解析器不喜欢它(这正好在函数的message.encode()行之前):

bcc_body = bcc => {"Bcc": bcc} | {};
message.put(bcc_body);

在这样的函数中使用变量允许的put()操作吗?如果是这样,我的语法有问题吗?

1 个答案:

答案 0 :(得分:2)

您可以在函数中使用.put(),但请记住它会返回一个新的哈希并保留原始版本。

尝试结束您的方法:

bcc_body = bcc => {"Bcc": bcc} | {};
newmessage = message.put(bcc_body);
newmessage.encode();