Erlang 是否有处理IO的组长协议规范?

在Erlang中,每个进程都有一个组长,当一个进程想要打印某些内容(即调用io库或执行类似操作)时,它将向其组长发送一条消息 我的问题是,在哪里可以找到这些消息的规范?或者一般来说,团队领导应该做什么 我通过一些实验设法发现,有时进程发送一个{io\u request,Sender,GroupLeader,request}术语,答案是{io\u reply,GroupLeader,ok}术语,但可能还有其他情况;是一个很好的信息源,也是的源代码 简言之: {io_request, From,

Erlang 打印命名参数

Archelus认为,编写一个新的格式例程来处理命名参数可能是一个很好的学习练习。因此,本着学习该语言的精神,我编写了一个格式化例程,用于处理命名参数 一个例子: 1> fout:format("hello ~s{name}, ~p{one}, ~p{two}, ~p{three}~n",[{one,1},{three,3},{name,"Mike"},{two,2}]). hello Mike, 1, 2, 3 ok 1> timer:tc(fout,benchmark_for

是否将路径添加到Erlang搜索路径?

我最近用debian包安装了Erlang RFC4627(JSON-RPC)。我使用以下命令运行测试服务器: sudo erl -pa ebin 然后在提示下: test_jsonrpc:start_httpd(). 返回 ok 我使用http://:5671/进行了测试,得到了成功消息 然而,当我尝试运行rabbitmq-http2时,我得到了自述文件所说的错误,这些错误是由rfc4627的代码不在erlang搜索路径上引起的。我如何把它放在路上。我在Dave Thomas的博客上看到一

在Erlang中,在流程中使用ets而不是流程字典有什么好处?

我认为使用ets仍然会带来类似的副作用。ets优于流程字典的好处是: 其他进程可以直接访问ETS表 ETS为您提供搜索/匹配/迭代功能,而流程字典只是一个键值存储 您可以通过一个步骤将表保存/加载到文件中 如果您的所有者进程死亡,那么表可以被其他人继承,因此数据不会丢失 ETS不是垃圾收集的,因为它存储在erlang进程之外的堆中。这意味着,当你把东西放入ets时,它会被复制到ets中,当你取出它时,你会在过程中得到一份副本。进行大量ets查找可能会导致在您的过程中过度考虑(但这仅与非常高的吞

如何调试Erlang中包含的函数?

在编写本文时,的实现在任务、类别和板的存储模块之间共享基本相同的功能。这是通过将大量使用模块的相同代码移动到scrumjet_datastore.hrl中实现的。scrumjet_task.erl、scrumjet_category.erl和scrumjet_board.erl包括scrumjet_数据存储.hrl,并且没有本地定义的功能 这在没有问题的情况下非常有效。但是,如果需要调试,则调试器会调出空模块,而不是定义函数的头文件 有人知道如何使Erlang调试器为includes中的函数工作

Erlang Web和iNet BindAddress

安装Erlang Web 1.3并以交互模式启动后,我在日志中发现以下错误: 无法启动服务: “config/inets.conf” 由于:“httpd_conf:0.0.0.0是一个 无效地址“ 在我的inets.conf中,我有以下内容: BindAddress 0.0.0.0 我的sys.config: [{inets,[{services,[{httpd,"config/inets.conf"}]}]}]. 有什么建议吗?我对这种语言或情况没有经验,但看起来0.0.0.0是一个无效的

erlang io:格式和挂起的web应用程序

当我在学习一门新语言时,我通常会放很多愚蠢的println,以查看在特定的时间,哪些值在哪里。这通常就足够了,因为这些语言通常都有一个tostring等价物。在使用erlang尝试同样的方法时,当试图打印的值不是列表时,我的webapp只是“挂起”。当打印的变量是元组而不是列表时,就会发生这种情况。没有错误,没有例外,什么都没有。。。只是没有回应。现在,我正在通过对我所写内容的谨慎而蒙混过关,并且随着我学到更多,事情变得越来越好。但我想知道,有没有更可靠的方法[盲目地]将值打印到stdout?

Erlang 如何在远程shell上接收stdio和error_记录器消息

在花了很长时间让rb在远程shell上工作之后,我想在远程shell上获取stdio/error logger消息,我已经四处寻找更改组长的方法,但似乎需要更改所有运行进程的组长,我的实验发现这是非常不稳定的。最直接的方法是不要弄乱erlang io子系统,而是使用标准的ERTS工具。 1使用标准输入/标准输出包装器/记录器启动仿真器: run_erl -daemon /tmp/ /some/log/dir erl 2然后做: ssh localhost -tt to_erl /tmp/ 使

我可以调用同一Erlang参数化模块中的函数吗?

我在Erlang中有一个参数化模块,我希望从同一个参数化模块的函数B中调用函数a。我如何才能做到这一点?来自纸张: 在抽象模块的每个函数中,变量 始终隐式绑定到当前模块实例 因此,您只需在函数B中编写: THIS:A(). 从纸上看: 在抽象模块的每个函数中,变量 始终隐式绑定到当前模块实例 因此,您只需在函数B中编写: THIS:A(). 只是在回答中重述一下。调用参数化模块中的函数不需要做任何特殊的操作,只需像平常一样编写代码即可。只有当您希望从模块中对导出的函数进行“远程”调用时,才需

不同的Erlang应用程序应该在同一台机器上共享同一个VM吗?

我有一个CouchDB实例在一台机器上运行,因此它有自己的ErlangVM进程。如果我有另一个独立的Erlang应用程序也在该机器上运行,那么在CouchDB和我的应用程序之间共享同一个VM是更好的选择,还是建议启动一个新的Erlang节点 虽然许多人会推荐这些子系统,但我会采取相反的方法。Erlang有一个内置的策略,可以在同一个服务器上运行多个服务器。如果您的应用程序直接相互通信,那么将它们捆绑到一个版本中可能是有意义的。这将加快应用程序之间的调用。有些人会争辩说,如果您需要关闭系统进行升级

Erlang,读取具有字符偏移量的文件

我有代码在文件中查找特定的文本,并给我一个偏移量,这样我就知道这种情况在哪里结束。现在我想从偏移量到文件末尾读取文件。该文件包含二进制数据和文本。如何在Erlang中执行此操作?使用pread。(见附件)。您必须自己处理任何字符编码,因为函数只处理字节

Erlang OTP I/O-几个问题

我读到了erlang最大的采用者之一是电信行业。我假设他们使用它在节点之间发送二进制数据,并提供简单的冗余、效率和并行性 erlang是否只将二进制文件发送到中心节点 它是否直接负责将二进制数据解析为实际语音?还是通过端口将其输入到另一种语言/程序 负责电话通话的速度,比如我说话和你听到之间的延迟 是否可以使用Erlang单独用于并行行为和C++或类似的顺序函数处理速度?< P>我只能猜测实际电信交换机中如何实现,但是我可以推荐一种方法: 首先,您可以在Erlang中实现所有内容,包括许多底层

Erlang gen_服务器强制转换错误的返回值

我尝试将消息强制转换到gen_服务器: gen_server:cast({global, ID}, {watchers}). 处理程序是: handle_cast({watchers}, State) -> case State#table_state.watchers of [] -> {reply, no_watchers, State}; _ -> {reply, State#table_state.watche

是否有任何支持Erlang的连续集成系统可用?

我想开始在我的个人项目中使用,以获得技术和概念方面的经验。问题是我的编程毒药流向了非主流(说得委婉一点),我的大部分工作都在Erlang中 什么样的持续集成系统能够处理非主流语言,在我的例子中,主要是Erlang?设置、配置和运行它们有多容易?在这一点上,我建议。它易于设置和配置,有许多联机帮助和常用Erlang测试工具的基本支持 有关如何将eunit和common test集成到Jenkins中的基本信息,请参见堆栈溢出问题。我们正在etorrent项目中使用Jenkins CI,这似乎非常有

Erlang rr()返回缺少的\u块

wings 3d shell使用erlang的新手问题(windows 7 pro,wings 3d 1.4.1)。当我写入读取记录定义的命令时: rr(wings). 我总是会出错: {error,beam_lib, {missing_chunk,'d:/temp/erlang/lib/wings/ebin/wings.beam',"Abst"}} 我做错了什么?rr/1“从模块的BEAM文件读取记录定义。如果BEAM文件中没有记录定义,则定位并读取源文件。”

Erlang 保持进程活动的远程节点

国际公共部门监管——国际公共部门监管(子宫分母) 我有以下设置: 在一个节点上('one@erlang.enzo“)正在运行一个服务器进程,其中一个监视程序正在运行另一个节点(”)two@erlang.enzo'). 当服务器启动时,它将启动远程节点上的看门狗。当服务器不正常退出时,看门狗会再次启动服务器。当看门狗退出时,服务器将再次启动它 网络启动后,服务器作为运行级别的一部分启动 服务器还监视远程节点,并在其(即节点)联机时启动看门狗。现在,服务器和看门狗之间的连接丢失可能有两个原因:第一,

Erlang中的精度

下一个代码的结果是5.99999999998,但正确答案是6 Alpha = math:acos((4*4 + 5*5 - 3*3) / (2*4*5)) Area = 1/2 * 4 * 5 * math:sin(Alpha) 可以得到6吗?计算是在硬件上使用标准浮点算法完成的。有时会出现舍入错误 你真的需要15位精度吗 要获得更“精确”的值,有多个选项: > round(Area). % Will round to integer 6 或者你可以精确到某个程度 round(Area

Erlang 使用Erlydtl的主/应用程序布局

使用Erlydtl进行主/应用程序布局的好方法是什么?对于主控/应用程序布局,我的意思是将主页布局模板和带有页面内容的模板分离,但将它们作为一个整体呈现。想想Ruby on Rails应用程序布局或ASP.NET母版页。您是否在尝试实现以下目标: main.dtl <html> <head></head> <body> <div id="menu">Menu</div> <div id="con

Erlang 将ChicagoBoss控制器链接到视图时出现问题

我正在二郎建立一个网站,但我遇到了麻烦。我安装了Chicagoboss,服务器启动,但我有一个问题。他们说要转到这个页面localhost:8001/pages/index当我转到这个页面时,我得到一个错误: 没有与请求的URL匹配的路由。别担心,此消息不会出现在生产中 我什么也没做,我在src/controllers/main.erl中对文件进行了编码。我做错了什么?我从未使用过ChicagoBoss,但这个问题非常基本,在提问之前,你们应该仔细阅读教程。看看请求的URL是如何调度的: hos

Erlang 更好地理解如何工作/平衡记忆能力';s事务/ACID功能

我仍在努力深入理解人们可以用记忆来做什么,回答这两个问题将大有帮助 1) 如果一个进程执行关于记录X的原子事务,而另一个进程执行涉及该记录的脏事务,会发生什么情况。第一道工序的酸性是否受损 2) 同一进程是否有办法在一个表的行上持有非脏(mnesia:transaction/1)读锁,同时在另一个表上执行脏操作?在允许脏操作的数据库环境中,隔离保证会丢失,就像mnesia一样。因此,问题1)的答案是肯定的,行为良好的事务流程可能会受到并发脏操作的危害,反之亦然——例如,脏读可能会返回“旧”甚至新

Erlang 使用换行符将列表数据写入文件

我正在列表中读取一个文本文件,内容如下: blah blah blah 现在,我正试图将列表数据写入一个文件,使其看起来与上面相同,我使用的是: filewrite(File,L) -> {ok, S} = file:open(File, write), lists:foreach( fun(X) -> io:format(S, "~n",[X]) end, L), file:close(S). 但这会在一行上打印所有内容,带有括号和语音标记…试试这个:

Erlang gen_udp向ip地址发送数据包?

我尝试使用下面的代码进行一个简单的测试,通过Internet发送数据包。我确实检查了localhost版本是否可以与以下命令一起工作,它确实可以工作,但如果我将localhost(127.0.0.1)替换为真实的internet地址(我的地址),它就不工作了。我只是在客户端得到0,服务器端没有任何变化,尽管在服务器端使用localhost是一样的 服务器端: udp\u测试:启动服务器()。 客户端: udp\u测试:客户端(40)。 很简单,但是当我用我的ip地址替换127.0.0.1时,我什

在一个术语下存储大量键/术语值的erlang模块中,性能最好的是什么

通过关注读取性能,我想创建一个术语,例如Orddict或Proplist,其中包含大量(100000)条目,每个条目都包含一个ID和一个术语值。这个封装术语应该能够返回存储在其键下的值,就像Orddict一样 example: K001 - Term001 K002 - Term002 K003 - Term003 包含整个集合的结果项需要从一个函数传递到另一个函数,用于多种计算目的,而无需将其存储在持久性存储中以避免磁盘I/O。我还选择在这一阶段不使用内存缓存,以避免此时的体系结构复

Erlang 二郎:为什么-行为(主管)给我“什么?”;未定义的回调函数";错误?

当我试图编译一个OTP管理器模块时,它是这样开始的: -module(gridz_sup). -behaviour(supervisor). -export([start_link/0, start_child/2]). -define(SERVER, ?MODULE). yada, yada... 我得到以下错误: gridz_sup.erl:9:警告:未定义的回调函数init/1(行为“supervisor”) 有善良的灵魂能指出我的错误吗 非常感谢, LRP在实施行为回调模块时,

如何在Erlang中将通配符模式转换为正则表达式?

通配符模式是将任何字符与(?)匹配、将任何序列字符与(*)匹配的文件系统标准 我正在尝试使用erlang函数替换: a) *进入* b) ?进入 c) 进入\。 d) 如果通配符模式不是以通配符开头,则在模式末尾添加一个^(在正则表达式中开始匹配) e) 如果通配符模式不是以通配符结尾,则在模式末尾添加一个$(regex中的end match) 不知何故,我无法获得re:replace来实现这一点 示例: 试图根据上述a)项进行更换 如果您对规范的完整性有信心,那么可以直接编写转换(我想不会有性

Erlang字符串:连接vs io_库:格式

我有一段代码,其中取4个值,并用管道(“|”)连接它们。目前,其实施方式如下: lists:flatten(io_lib:format("~s~s~s~s~s",[Id, Delim, Date, Delim, Signature])). 列表:展平(io_lib:format(“~s~s~s~s~s”,[Id,Delim,Date,Delim,Signature])。 但是,我想知道改用string:join(除了看起来更干净之外)是否有什么好处?它会稍微快一点,但更重要的是更容易阅读,正如我

Erlang ejabberd如何编译新模块

我找到了代码: erlc -I ~/ejabberd-2.1.13/lib/ejabberd-2.1.13/include -pa ~/ejabberd-2.1.13/lib/ejabberd-2.1.13/ebin mod_my.erl 但它不起作用?只需将模块放到ejabberd的src/文件夹中,然后“make”。编译它不需要什么特别的东西 以下是将自定义模块添加到ejabberd的步骤 将模块放入ejabberd/src文件夹 来到终端中的ejabberd目录并运行命令$sudo

Erlang 现场陷阱_出口关闭

我是Erlang的新手,除了阅读书籍和手册外,我还喜欢查看现有代码。trapexit.org网站看起来不错,但目前已关闭。 是否有人可以重新启动该程序,或者更好,是否在其他地方有一个维护良好、最新的代码库 TIA我个人会看看Bitbucket:或Github: 但是没有,我不知道还有其他类似于Trapexit的以Erlang为中心的网站,我个人会看看Bitbucket:或Github: 但是没有,我不知道有任何其他类似于Trapexit的以Erlang为中心的网站拥有Trapexit的大部分内容

Erlang在主管上冻结:启动\u子级

我想用一个流程启动一个主管,该流程将产生更多链接到该主管的流程。程序冻结在主管:启动\u child 主管启动主子级: % supervisor (only part shown) init([]) -> MainApp = ?CHILD_ARG(mainapp, worker, [self()]), {ok, { {one_for_one, 5, 10}, [MainApp]} }. 主要子项从这里开始: % mainapp (gen_server) start_l

Erlang Ejabberd群集不工作

我遵循此网站链接进行ejabberd群集 一切正常,它显示两个节点运行db和web admin,还有两个节点主节点和从节点,但如果我关闭主节点或从节点,另一个节点不继续进程,我应该做什么,如果一个节点关闭,另一个节点继续进程。Mnesia的行为类似于多主数据库。但是,如果关闭节点,则重新启动过程的顺序应该相反。如果您有node1和node2,并且您杀死了node1,然后杀死了node2,那么您应该首先重启node2,然后重启node1。这是因为Mnesia认为最后更新的节点是最后一个。我不明白另

Erlang mongooseIM-无法使用mod_vcard_odbc

我已经成功地建立了mongooseIM。它不能与odbc一起使用。模块mod_vcard_odbc无法正常工作。当我输入vcard时,出现以下错误- 2014-01-02 19:35:22.192 [error] <0.369.0>@ejabberd_odbc:outer_transaction:400 SQL transaction restarts exceeded ** Restarts: 10 ** Last abort reason: "#42S22Unknow

Gen_bunny(Erlang/Elixir)使用bunnyc订阅队列(Rabbitmq)

有人知道如何使用gen_bunny订阅Rabbitmq队列吗 我可以连接并推送消息,通过使用get方法,我也可以接收消息。但是,我无法找到如何订阅队列并在我的gen_服务器中获取消息。我没有尝试过,但他们有一个在回购中使用gen_bunny行为的示例:谢谢Jose,我检查过了,但没有显示订阅队列的示例。我可以使用get方法接收消息,但我想订阅队列。顺便说一句,在bunnyc.erl中,它们有两个函数,register\u return\u handler和register\u flow\u ha

Erlang 模块名称前的问号

遵循本指南: 根据指南,此代码在Erlang中生成一个名为?LEX的模块。长生不老药叫什么名字 如果调用文件lexer.xrl,leex将生成一个名为lexer.erl的Erlang文件,该文件定义了一个名为lexer的模块。然后,您可以从Elixir使用它作为:lexer.。要查看本文中的示例,请搜索selector\u lexer.xrl 它与parser.yrl的工作原理类似–您将获得名为parser的Erlang模块,您可以在Elixir中调用它作为:parser.。它在哪里说的?Thi

Can';不向派生的Erlang进程发送任何内容

我有以下Erlang代码: #!/usr/bin/env escript %%! -pz ../deps/amqp_client ../deps/rabbit_common ../deps/amqp_client/ebin ../deps/rabbit_common/ebin % RMQ module -module(rmq). -export([main/1, send/1, validate/0, test/0]). -include_lib("../deps/amqp_client/in

使用启动参数启动Erlang escript应用程序

目前,我的Erlang应用程序是在escript(TCP服务器)中启动的,由于它使用了我提供的默认端口,所以一切正常。现在我想通过escript将端口传递给应用程序,但我不知道如何传递。(应用程序运行一个主管) script.escript !/usr/bin/env escript %% -*- erlang -*- -export([main/1]). main([UDPort, TCPort]) -> U = list_to_integer(UDPort), T =

erlang中映射字段的模式匹配

我现在正在读一本书>。当我查看Map字段的模式匹配时,书中的代码片段抱怨我的Erlang提示符出现了一些错误 %% Book's version 1> Henry8 = #{ class => king, born => 1491, died => 1547 }. #{ born => 1491, class=> king, died => 1547 }. 2> #{ born => B } = Henry8. #{ born =>

如果应用相同的种子,为什么Erlang会生成相同的随机数序列?

我将下面的命令应用于两个erlang提示,它们都生成相同的随机数序列,这是否意味着在erlang语言中它是伪随机的?我对基本原理很好奇,因为在Java中,即使我为它提供两次相同的种子,序列也不会相同。非常感谢 random:seed(6, 6, 6). random:uniform(100). random:uniform(100). ... the generated sequence: 12, 27, 79, 58, 90, 25, ... 您所描述的通常是传统伪随机数生成器(PRNG)

Erlang 脱机消息\u未调用挂钩

我正在处理脱机通知。 我试过这个密码 我正在脱机使用mod\u http\u模块。 当用户发送脱机消息时,我的错误日志中出现以下错误 running hook: {offline_message_hook,[{jid,<<"1112121212">>, <<"xyz.com.com">>,<<"26112267011450933160669531">>, <

Erlang ssh连接错误:无法使用可用的身份验证方法进行连接

在Elixir中进行ssh连接时,我遇到以下错误: :ssh.shell('host address', port_number, user: 'user_name') {:error, 'Unable to connect using the available authentication methods'} 答案是@svarlet on留下的评论 如果您的ssh密钥有一个密码短语,则需要在Erlang ssh connect命令的选项中指定它 :ssh.shell('host addr

Erlang 波束字节码指令

嘿,伙计们,我有一个关于文件格式字节码的问题 指令的{label,1}和{line,1}是什么 有没有人有一个好的网站/表格,我可以在那里阅读有关反转光束文件的内容 感谢Erlang's的: 请注意,汇编程序文件的格式没有文档记录,并且可以在不同版本之间更改 也就是说,标签指令为分支和调用目的标记一个位置,行指令提供源位置和行号信息 您可能需要调查此问题。好的,谢谢。另一个问题:你知道我如何将字节码转换成.beam文件,或者以某种方式运行被操纵的字节码吗?@QDA:你是在问如何将汇编程序编译成b

Erlang 测试:检查元组是否返回

我正在编写一个测试来检查gen_服务器的响应。响应本身是{profile,someprofilefromgeneserver}或{error,ErrorResponse} 所以我想写一个测试,它可以: Profile = mygenserver:get_profile(), ?assertEqual(Profile, {profile, SomeProfile}) 因为我并不真正关心SomeProfile的值。但是这表明SomeProfile是未绑定的:(有办法修复它吗?您可以使用?asser

Erlang 如何将字符串划分为子字符串?

我想根据给定的数字将字符串划分为子字符串,例如: divide("string",1) = ["s","t","r","i","n","g"]. 我试过这个,但没有成功 lists:split(1,"string") = {"s", "tring"} 有什么想法吗?你可以试试这个功能。如果数字>0小于或等于字符串长度除以2 first_substring(List, Separator) -> first_substring_loop(List, Separator, [])

Erlang 测试节点是否彼此可见?

如何检查部署的节点是否可以相互看到? 我试着做: mix edeliver ping production --verbose 我得到: EDELIVER MY_IDEA WITH PING COMMAND -----> pinging production servers production node: 0 user : bitnami host : xxx path : /home/bitnami response: pong

来自erlang shell的Rabbitmq客户端抛出错误

我正在尝试使用amqp_客户端库连接到rabbitmq。我遵循提供的步骤 我的rabbitmq版本是rabbitmq 3.5.7,Erlang 18.3。所以我从中下载了相应的文件。并解压缩到“/usr/lib/erlang/lib/”路径。然后在erlang shell中,我开始如下所示 application:start(xmerl). application:start(amqp_client). application:start(rabbit_common). rr("/usr/lib

列表:foreach在Erlang中返回ok

我刚开始学习二郎,觉得很难理解。 我想将一个列表拆分为一个字符串,在其上运行string:titlecase,然后将其合并为一个字符串 namecase(Text) -> TextArray = string:split(Text, " ", all), lists:join(" ", lists:foreach(fun(Element) -> string:titlecase(Element) end, TextArray)). 但是它失败了,错误消息是escri

如何从Erlang中的MucSub事件中提取嵌套的ejabberd消息元素

我想在ejabberd数据包中找到消息元素。 数据包本身是一个消息元素,但有时(延迟消息或其他情况)实际消息嵌套在数据包内: 正常信息: <message from="hag66@shakespeare.example" to="coven@muc.shakespeare.example" type="groupchat"> <body>Test</body> </message> 试验 其他结构示例:

Erlang Gun http客户端未打印响应体

我有一个http gen_服务器,它使用gun作为http客户端库。我能够打开连接并发出GET请求。但是,我没有收到响应正文,但收到的消息是'fin。如何在异步模式下获得gun响应 (defun get (url-map) (io:format "http get ~p~n" `(,url-map)) (let* ((`#(ok ,con-pid) (gun:open (binary:bin_to_list (map-get url-map 'host))

Erlang rebar3无法获取和复制依赖项(LFE项目)

几年后,我想回到Erlang/LFE的工作岗位。我为学习这门语言做了很多努力。我无法使用rebar3 get deps命令获取依赖项 它遵循钢筋.config,也可用 我知道我引用了一个旧版本的LFE。。。但是,如果我删除所有dep并再次尝试添加它们:第一个失败的是clj。然而,当rebar.config处于其原始状态时,我在rebar3 get deps之后获得了以下输出。完成输出 我检查了a和,但仍然无法解决问题 我的系统是macOSCatalina。它遵循的是Erlang环境版本: ERL

Erlang 为什么OTP中的类型规格重复参数名称?

在Erlang标准库的类型规范中,在when子句之前,规范中几乎没有任何类型。例如,列表:member/2的规范如下: -spec成员(元素,列表)->boolean()当 元素:T, 列表::[T], T::term()。 而不是: -spec成员(Elem::T,List::[T])->boolean()当 T::term()。 这有什么原因吗?从透析器的角度来看,这两种样式是否等效?这样做是因为从规范生成的文档如果这样做会更好。这样做是因为从规范生成的文档如果这样做会更好。谢谢,卢卡斯

  1    2   3   4   5   6  ... 下一页 最后一页 共 129 页