我有一个返回哈希的函数,给定某些参数:
build_message = function(from, to, bcc, subject, tag, htmlbody, textbody, replyto) {
message = {"From": from,
"To": to,
"Subject": subject,
"HtmlBody": htmlbody,
"TextBody": textbody};
message.encode();
}
其中一些参数(如bcc
和replyto
)是可选的。如果调用方为它们提供 null 值,则它们不得出现在 I 返回的哈希中。也就是说,只有当bcc
参数为非 null 时,"Bcc": 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();