我正在尝试编写一个简单地杀死我的程序的函数。它被称为退出聊天。但是,当我调用函数时出现此错误messenger:quitChat()。
** exception error: bad argument
in function exit/2
called as exit(undefined,kill)
in call from messenger:quitChat/0 (messenger.erl, line 26)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我正在使用此代码:
-module(messenger).
-export([start_server/0, server/1, logon/1, logoff/0, message/2, client/2,
requestChat/1, quitChat/0]).
server_node() ->
messenger@timberlake.
server(User_List) ->
receive
{From, logon, Name} ->
New_User_List = server_logon(From, Name, User_List),
server(New_User_List);
{From, logoff} ->
New_User_List = server_logoff(From, User_List),
server(New_User_List);
{From, message_to, To, Message} ->
server_transfer(From, To, Message, User_List),
io:format("list is now: ~p~n", [User_List]),
server(User_List)
end.
start_server() ->
register(messenger, spawn(messenger, server, [[]])).
quitChat() ->
exit(whereis(messenger), …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的元组:
{127,0,0,1}
Run Code Online (Sandbox Code Playgroud)
现在我想将该元组作为字符串传递"127.0.0.1"给外部库(地理 IP 库)。将此元组转换为字符串的最佳方法是什么?
我刚拿起Erlang时遇到一个简单的问题,但无法修复它或找到任何有关它的东西。我正在尝试定义一个模块来检查an atom是否在给定列表中。我是这样通过Erlang shell输入列表的:
veggies:veggieMember([cucumber,tomato,potato],tomato).
但是我总是 exception error: no function clause matching
也许我误解了基础知识,但是这是我想要做的模块代码:
-module(veggies).
-export([veggieMember/2]).
veggieMember(veggieList,query)->
case lists:member(query, veggieList) of
true->veggieList;
false->[query|veggieList]
end.
Run Code Online (Sandbox Code Playgroud) 是否有任何二郎函数被调用自动给定的时间量后,一旦被触发就会自动给定的时间量之后被调用,应该没有必要一次又一次触发它。我正在用Erlang编写一个模块,该模块在上执行清理任务ejabberd server。一旦触发此模块,则需要每天自动调用。有指针吗?
我正在使用 Dialyzer 修复 Erlang 代码中的错误。
io:format(IoDevice, "[]");
Run Code Online (Sandbox Code Playgroud)
此行产生以下错误:
The call io:format(IoDevice::pid(),[91 | 93,...])
will never return since the success typing is
(atom() | binary() | string(),[any()]) -> 'ok'
and the contract is (Format,Data) -> 'ok'
when Format :: format(), Data :: [term()]
Run Code Online (Sandbox Code Playgroud)
我无法理解问题出在哪里有人可以解释一下吗?
谢谢
将应用程序 war 部署到服务器时出现此错误:
12-Sep-2018 10:21:54.726 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsJar Unable to process Jar entry [module-info.class] from Jar [file:/xxx/apache-tomcat-8.0.41_xxxx/webapps/xxx/WEB-INF/lib/jaxb-api-2.3.0.jar] for annotations
Run Code Online (Sandbox Code Playgroud)
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
Run Code Online (Sandbox Code Playgroud)
信息:
谢谢你。
我正在尝试运行一个simple_one_for_one supervisorwheresupervisor和worker放置在单独的模块中,并且在使用时我不断收到以下错误supervisor:start_child:
>A=sup:start_link().
>B=supervisor:start_child(A,[]).
{error,{'EXIT',{undef,[{worker,start_link,[],[]},
{supervisor,do_start_child_i,3,
[{file,"supervisor.erl"},{line,379}]},
{supervisor,handle_call,3,
[{file,"supervisor.erl"},{line,404}]},
{gen_server,try_handle_call,4,
[{file,"gen_server.erl"},{line,661}]},
{gen_server,handle_msg,6,
[{file,"gen_server.erl"},{line,690}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,249}]}]}}}
Run Code Online (Sandbox Code Playgroud)
导师
-module(sup).
-behaviour(supervisor).
-compile([export_all]).
start_link()->
{ok,Pid}=supervisor:start_link(?MODULE,[]),
io:format("sugi pl"),
Pid.
init(_Args) ->
RestartStrategy = {simple_one_for_one, 10, 60},
ChildSpec = {
worker,
{worker, start_link, []}, //tried adding here a parameter in the A
permanent,
brutal_kill,
worker,
[sup]
},
{ok, {RestartStrategy,[ChildSpec]}}.
Run Code Online (Sandbox Code Playgroud)
工人
-module(worker).
-compile(export_all).
start_link([Arg])-> //tried both [Arg] and Arg
{ok,Pid}=spawn_link(?MODULE,init,[]),
Pid.
init([Time])->
receive->
{From,Msg}->From !{Time,Msg},
init(Time)
end.
Run Code Online (Sandbox Code Playgroud)
命令
>c("[somepath]/sup.erl"),A=sup:start_link(),B=supervisor:start_child(A,[]). …Run Code Online (Sandbox Code Playgroud) 我在一个模块中有以下代码:
-module(my_server).
-record(server_opts,
{port, ip = "127.0.0.1", max_connections = 10}).
Opts1 = #server_opts{port=80}.
Run Code Online (Sandbox Code Playgroud)
当我尝试在 Erlang shell 中编译它时,它会给出类似
syntax error before Opts1. 知道上面的代码可能有什么问题。请注意,代码取自以下网站:
在 Erlang 中记录示例。
我有带有标头(不确定长度的\FF字节序列)和以下结构体的二进制数据包,我需要解析。示例数据包:
<<255,255,255,255,255,6,8,0,0,1>>,
<<255,255,255,255,255,255,255,255,255,10,15,0,0,1>>
解析它的最有效方法是什么?我找到了以下解决方案:
1) 将数据包转换为列表
2)跳过标题,享受以下乐趣:
skip_elem([E | Rest], Condition) ->
case Condition(E) of
true -> [E | Rest];
false -> skip_elem(Rest, Condition)
end;
skip_elem([], _Cond) -> [].
Run Code Online (Sandbox Code Playgroud)
3) 将列表转换为二进制并使用二进制匹配特征解析其主体
但看起来方法复杂且无效,有没有更有效的解决方案?
有没有办法按升序或降序对列表中的所有元素进行排序?
例如,List1创建如下:
List1 = [4,3,2,6,1,5].
我需要这个输出 - > List2 = sort(List1).
List2 == [1,2,3,4,5,6]
真正
我正在使用file:get_cwd()并且我看到了它的错误,即{error, enoent}. 导致此错误的潜在问题是什么?
我想从原子转换为字符串。
Input = 'hello world'.
Output = "hello world".
Run Code Online (Sandbox Code Playgroud)
我如何实现这一目标?
erlang ×12
erlang-shell ×2
dialyzer ×1
ejabberd ×1
function ×1
immutability ×1
list ×1
module ×1
record ×1
sorting ×1
spring-boot ×1
string ×1
syntax ×1
tomcat ×1