0
我想写DRY erlang代码,但我有一个问题。我有这样的一个记录
-record(person, {firstname, lastname, phones=[], emails=[]}).
我用它来创建一个简单的人名单的地址簿。然后我想调用一个函数:
updatePersonsInfo(FName,LName,Phone, Email,[Old = #person{firstname = FName, lastname = LName} | T]) ->
UpdatedPhonesList = #person.phones ++ [Phone],
UpdatedEmailsList = #person.emails ++ [Email],
[Old#person{phones= UpdatedPhonesList, emails = UpdatedEmailsList}] ++ T;
而且我要调用此函数,但我想只添加一个电子邮件。事情是这样的:
updatePersonsInfo(FName,LName, "",Email,Book);
但后来我收到一个错误:
** exception error: bad argument
in operator ++/2
called as 4 ++ []
所以我想这仅仅是添加任何列出的问题。当然,我可以将这个函数分割为:updatePersonsEmail和updatePersonsPhone,但是这两个函数的逻辑是相同的,这会使我的代码变得丑陋。
任何想法?我试图使用null原子,或_,甚至[],但没有任何工作。
coures!感谢队友,抱歉打扰你的语法错误 – NickyNick