3

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

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则必须仅存在于哈希中。bcc

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

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

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

4

1 回答 1

2

您可以.put()在函数内部使用,但请记住,它会返回一个新的散列并且保持原始散列不变。

尝试像这样结束您的方法:

bcc_body = bcc => {"Bcc": bcc} | {};
newmessage = message.put(bcc_body);
newmessage.encode();
于 2011-04-04T23:47:46.337 回答