thanks,<div>now it works.<div><br></div><div><br></div><div>>>Although I'm not quite sure what you want to achieve...</div><div><br></div><div><div>I didn't write all code I needed.</div><div><br></div><div><div>
I needed something like this:</div><div><br></div><div><br></div><div>-record(inputmsg, {action, data1, ..., datan}).</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>   </div></div><div>handle_cast(#inputmsg{action=a}=Msg, State) -></div>
<div>     action_a(Msg),</div><div><div>    {noreply, State};</div></div><div><br></div><div><br></div><div><div>handle_cast(#inputmsg{action=b}=Msg, State) -></div><div>     action_b(Msg),</div><div>    {noreply, State};</div>
</div><div><br></div><div><div>handle_cast(#inputmsg{}=Msg, State) -></div><div>     action_default(Msg),</div><div>    {noreply, State};</div></div><div><br></div><div><br></div><div><br></div><div>and I needed data1...datan in action_x().</div>
<div><br></div><div><br></div><div>thanks.</div><div><br></div><div class="gmail_quote">2012/4/10 Robert Virding <span dir="ltr"><<a href="mailto:robert.virding@erlang-solutions.com">robert.virding@erlang-solutions.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:Times New Roman"><font face="'Times New Roman'" style="font-family:'Times New Roman'">As Attila has said the way to do this:</font><div style="font-family:'Times New Roman'">
<br></div><div style="font-family:'Times New Roman'"><font face="'courier new', courier, monaco, monospace, sans-serif">handle_cast(#inputmsg{}=Msg, State) -></font></div><div style="font-family:'Times New Roman'">
<font face="'courier new', courier, monaco, monospace, sans-serif">    ... ;</font></div><div style="font-family:'Times New Roman'"><br></div><div><span style="font-family:'Times New Roman'">The reason your example doesn't work is that </span><font face="'courier new', courier, monaco, monospace, sans-serif">#inputmsg{_='_'}</font><font face="'Times New Roman'"> expands so that all the fields will get the value of the ATOM '_' which is definitely not the same as the VARIABLE _. In this case there is actually no need to do anything as the compiler automatically puts the variable _ for all fields which aren't explicitly mentioned.</font></div>
<div><font face="'Times New Roman'"><br></font></div><div><font face="'Times New Roman'">The main use of the _='_' construct is when you want to create a match pattern for ets/mnesia which is tuple which is INTEPRETED as a pattern. Then it is useful to have a construct which sets all unmentioned fields to the value of the atom '_' which is interpreted as the don't care variable.</font></div>
<div><font face="'Times New Roman'"><br></font></div><div><font face="'Times New Roman'">It is irrelevant whether you write </font><font face="'courier new', courier, monaco, monospace, sans-serif">#inputmsg{}=Msg</font><font face="'Times New Roman'"> or </font><font face="'courier new', courier, monaco, monospace, sans-serif">Msg=#inputmsg{}</font><font face="'Times New Roman'">, they are equivalent. I prefer the former, but many prefer the latter.</font></div>
<div><font face="'Times New Roman'"><br></font></div><div><font face="'Times New Roman'">Robert</font></div><div style="font-family:'Times New Roman'"><br><hr><blockquote style="padding-left:5px;font-size:12pt;font-style:normal;margin-left:5px;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal;border-left:2px solid rgb(16,16,255)">
<div><div class="h5">Hi,<div>I'm trying to use records in functions pattern matching but I'm not able. I want something like that:<div><br></div><div><div>handle_cast(Msg = #inputmsg{_='_'}, State) -></div>
<div>   do_something(Msg),</div>
<div>    {noreply, State};</div></div><div><br></div><div>Any idea?</div><div>thanks.</div></div>
<br></div></div><div class="im">_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></blockquote><br></div></div></div></blockquote></div><br></div></div>