Ich versuche, einen einfachen Thrift-Server in Erlang zu schreiben, der eine Zeichenfolge und eine Zeichenfolge zurückgibt.Thrift/Erlang String
Alles scheint der Aufruf meiner Funktion auf den Punkt Aufarbeiten zu werden:
handle_function(Function, Args) when is_atom(Function), is_tuple(Args) ->
case apply(?MODULE, Function, tuple_to_list(Args)) of
ok -> ok;
Reply -> {reply, Reply}
end.
test([X]) ->
"You sent: " ++ X.
Ich bin ein function_clause bekommen. Der Stack-Trace zeigt folgendes:
{function_clause, [{server, test, [< < "w00t" >>]},
{server, handle_function, 2}, ...
Meine Handle_Funktion wurde aus der Tutorial-Datei kopiert, so dass ich nicht überrascht sein werde, wenn ich es zwicken muss. Irgendwelche Ideen?
Aha. Ich hätte mir die Dokumente für die Anwendungsfunktion genauer ansehen sollen. Ich nahm an, da Args eine Liste war, die meine Funktion benötigen würde, um eine zu erhalten. Außerdem musste ich einen binären Parameter a la angeben: test (<>) -> –
steamer25
Wie meinst du "einen binären Parameter angeben"? – rvirding
@rvirding In Erlang wird eine Thrift-Zeichenfolge als Binärdaten dargestellt. Meine Funktion musste < empfangen und dann mit binary_to_list (X) dekodieren. –
steamer25