给定某些参数,我有一个返回哈希值的函数:
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()
操作?如果是这样,我的语法有问题吗? 最佳答案
您可以在函数内使用.put()
,但请记住,它返回一个新的哈希值,而原始值保持不变。
尝试像这样结束方法:
bcc_body = bcc => {"Bcc": bcc} | {};
newmessage = message.put(bcc_body);
newmessage.encode();