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

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()操作?如果是这样,我的语法有问题吗?

最佳答案

您可以在函数内使用.put(),但请记住,它返回一个新的哈希值,而原始值保持不变。

尝试像这样结束方法:

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

09-18 01:37