在给定某些参数的情况下,我有一个返回哈希的函数:
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
是可选的。如果调用者为它们提供空值,则它们不能出现在我返回的哈希中。也就是说,如果"Bcc": bcc
参数为非null,则bcc
必须仅出现在哈希中。
这是我的第一次尝试,但是解析器不喜欢它(这正好在函数的message.encode()
行之前):
bcc_body = bcc => {"Bcc": bcc} | {};
message.put(bcc_body);
在这样的函数中使用变量允许的put()
操作吗?如果是这样,我的语法有问题吗?
答案 0 :(得分:2)
您可以在函数中使用.put()
,但请记住它会返回一个新的哈希并保留原始版本。
尝试结束您的方法:
bcc_body = bcc => {"Bcc": bcc} | {};
newmessage = message.put(bcc_body);
newmessage.encode();