我正在尝试实现以下功能:
person(Name, Age, Address) -> Person.
Name
是字符串,Age
是整数,Address
是字符串
函数应该返回包含函数参数中的数据的map(Person):
person("Kermit the frog", 60, "123 Sesame street").
我知道如何用记录实现它:
person1() -> #person{name = "Kermit the Frog",
age = 60,
address = "123 Sesame Street"}.
但我需要该函数来返回地图。
有什么建议吗?
答案 0 :(得分:1)
你真的需要一个功能吗?它可以直接使用记录完成。这里的任何方式都是代码。有些地方人们使用define语句来实现像oop的构造函数一样。如果您正在搜索相同的方法,可以使用该方法...
-module(test).
-export([init/0, person/3]).
-record(person, {name,age,address}).
-define(PERSON(Name, Age, Address), #person{name=Name, age=Age, address=Address}).
init()->
?PERSON("Kermit the frog", 60, "123 Sesame street").
person(Name, Age, Address)->
#person{name=Name, age=Age, address=Address}.