小编pol*_*per的帖子

我试图退出,但得到一个异常错误的参数,称为 exit(undefined,kill)

我正在尝试编写一个简单地杀死我的程序的函数。它被称为退出聊天。但是,当我调用函数时出现此错误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)

erlang

2
推荐指数
1
解决办法
1849
查看次数

如何将整数列表连接到 Erlang 中的字符串?

我有一个看起来像这样的元组:

{127,0,0,1}
Run Code Online (Sandbox Code Playgroud)

现在我想将该元组作为字符串传递"127.0.0.1"给外部库(地理 IP 库)。将此元组转换为字符串的最佳方法是什么?

erlang

2
推荐指数
1
解决办法
396
查看次数

没有与erlang匹配的函数子句

我刚拿起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 erlang-shell

2
推荐指数
1
解决办法
5040
查看次数

给定时间后在erlang中自动调用的函数

是否有任何二郎函数被调用自动给定的时间量后,一旦被触发就会自动给定的时间量之后被调用,应该没有必要一次又一次触发它。我正在用Erlang编写一个模块,该模块在上执行清理任务ejabberd server。一旦触发此模块,则需要每天自动调用。有指针吗?

erlang ejabberd

2
推荐指数
2
解决办法
803
查看次数

我如何解决 Dialyzer 中的“因为成功输入是 [...] 而合同是...”而永远不会返回?

我正在使用 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)

我无法理解问题出在哪里有人可以解释一下吗?

谢谢

erlang dialyzer

2
推荐指数
1
解决办法
137
查看次数

无法将战争部署到 Tomcat

将应用程序 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)

信息:

  1. 应用程序是使用 Spring Boot 创建的微服务
  2. 使用的 Java 是版本 8
  3. Tomcat 版本:tomcat-8.0.41

谢谢你。

tomcat spring-boot microservices

2
推荐指数
1
解决办法
3436
查看次数

为什么我的主管在带有 undef 的 start_child 上失败?

我正在尝试运行一个simple_one_for_one supervisorwheresupervisorworker放置在单独的模块中,并且在使用时我不断收到以下错误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)

erlang module erlang-supervisor

2
推荐指数
1
解决办法
528
查看次数

Erlang 中的伪函数是什么?

我在文档中找到了这个:

对每个使用记录的模块,在编译时添加一个伪函数来获取有关记录的信息:1

什么是伪函数?

erlang function

2
推荐指数
1
解决办法
50
查看次数

Erlang 在记录构建时给出语法错误

我在一个模块中有以下代码:

-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 中记录示例

syntax erlang record erlang-shell

1
推荐指数
1
解决办法
240
查看次数

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) 将列表转换为二进制并使用二进制匹配特征解析其主体

但看起来方法复杂且无效,有没有更有效的解决方案?

erlang

1
推荐指数
1
解决办法
231
查看次数

列表Erlang中的元素排序

有没有办法按升序或降序对列表中的所有元素进行排序?

例如,List1创建如下:

List1 = [4,3,2,6,1,5].

我需要这个输出 - > List2 = sort(List1).

List2 == [1,2,3,4,5,6]

真正

sorting erlang list

1
推荐指数
1
解决办法
2230
查看次数

为 file:get_cwd() 获取 {error, enoent} 的常见原因是什么?

我正在使用file:get_cwd()并且我看到了它的错误,即{error, enoent}. 导致此错误的潜在问题是什么?

erlang

1
推荐指数
1
解决办法
475
查看次数

Erlang:如何将 Atom 转换为 String?

我想从原子转换为字符串。

Input  =  'hello world'.
Output =  "hello world".
Run Code Online (Sandbox Code Playgroud)

我如何实现这一目标?

string erlang immutability

0
推荐指数
1
解决办法
2245
查看次数