0
我想知道如何定義函數,它作爲參數需要一個字符串並返回記錄的成員。 例如與記錄函數字符串=>在erlang中記錄成員
-record(measurement, { temperature, pm2p5, pm10, pressure, humidity, others=[]}).
而且我的函數的片段:
update_measurement(Measurement, Type_as_String, Value) ->
Measurement#measurement{get_type(Type_as_String) = Value}
我想傳遞一個類型爲字符串更新值,我沒有一個想法來定義功能get_type(Type_as_String)
。 我試過用原子,但它沒有工作。
喜歡的東西
update_measurement(Measurement, Type_as_String, Value) ->
case Type_as_String of
"temperature" -> Measurement#measurement{temperature = Value};
"humidity" -> Measurement#measurement{humidity = Value};
...
也不行,因爲我想重用在其他功能上這種模式。
你的意思是'binary_to_atom'?但事實上,這似乎有點奇怪,難道你不能只寫所有的匹配器嗎? – raina77ow
不,我定義了'get_type(Type_as_String) - > 「溫度」 - >溫度; 「溼度」 - >溼度; ....「但沒有工作 – przem
對不起,不明白:是你的字符串是二進制還是列表?如果後者('「溫度」'),則使用'list_to_atom/1'代替。像'list_to_atom(「溫度」)=>溫度。 – raina77ow