我想打印出一个字符串
IO.puts("Count: #{my_count}")
Run Code Online (Sandbox Code Playgroud)
但是我希望输出中的前导零如
Count: 006
Run Code Online (Sandbox Code Playgroud)
我该怎么做,文档在哪里?
如果我注意到哈希表(或构建在哈希表上的任何其他数据结构)正在填满,那么你应该在什么时候构建一个包含更多桶的新表.到目前为止,在表格中给出了n个项目,你如何计算出在新表中使用了多少个桶?
所以假设我有100个桶.当有50个项目时,我应该重组吗?500?5000?或者我应该寻找最完整的桶和关键吗?然后,当我达到这一点时,我有多大的新哈希表?
与此相关的是,如果您事先知道将要进入的项目大小,是否有办法计算桶数以获得良好的平均性能?
我知道真正的答案取决于许多其他考虑因素,例如在特定示例中速度与大小的重要程度,但我正在寻找一般的guildlines.
我也知道我不应该优化这种事情,除非良好的分析表明这是一个瓶颈.我只是在想一个会使用大量哈希表的项目,并想知道如何处理这个问题.
如果我正在编写一个传递另一个函数的函数,有没有办法检查我传递的函数的arity,或者模式匹配不同的arities?我可以使用is_function/2来检查特定的arities,但这将是一个获取数字的尴尬方式.
在atexit()函数中释放内存有什么意义吗?
我有一个全局变量,在启动后获得malloc.我可以编写一个atexit()函数来释放它,但是当程序退出时系统是否会回收所有内存?
整洁和积极清理自己有什么好处吗?
我正在使用switch语句在一些C代码上运行gcov.我已经编写了测试用例来涵盖通过switch语句的每个可能的路径,但它仍然报告switch语句中的一个分支未被采用,并且在"至少采取一次"的统计数据中报告的分支小于100%.
以下是一些示例代码:
#include "stdio.h"
void foo(int i)
{
switch(i)
{
case 1:printf("a\n");break;
case 2:printf("b\n");break;
case 3:printf("c\n");break;
default: printf("other\n");
}
}
int main()
{
int i;
for(i=0;i<4;++i)
foo(i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用" gcc temp.c -fprofile-arcs -ftest-coverage" 构建,运行" a",然后执行" gcov -b -c temp.c".输出指示交换机上的八个分支,一个(分支6)未被占用.
这些分支是什么?我如何获得100%的覆盖率?
好吧,这可能有一个非常简单的答案,但我以前从未尝试过这样做:如何在应用程序中启动网页?您知道,"点击此处转到我们的常见问题解答",当他们这样做时,启动他们的默认Web浏览器并转到您的页面.我在Windows中使用C/C++,但如果有更广泛,更便携的方式,我也想知道.
你如何检查Phoenix/Elixir/Erlang应用程序的正常运行时间?如果执行:observer.start()并查看"系统"选项卡,则可以在"统计"区域中查看正常运行时间.但我希望能够以编程方式提取该信息并将其包含在报告中.我已经找到了从哪里获取大部分数据,但我没有看到它从哪里获取正常运行时间.
我正在使用 Phoenix 框架,它在下面运行 Cowboy。我偶尔会在日志中看到以下一对错误:
Bad value on output port 'tcp_inet'
GenServer #PID<0.8423.1> terminating
** (FunctionClauseError) no function clause matching in :http_transport.close/2
(inets) http_transport.erl:346: :http_transport.close(:undefined, #Port<0.18079778>)
(stdlib) gen_server.erl:643: :gen_server.try_terminate/3
(stdlib) gen_server.erl:809: :gen_server.terminate/7
(stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Run Code Online (Sandbox Code Playgroud)
我能想到的所有搜索都指向将元组发送到 gen_tcp:send() 的内容。但当你在凤凰城的层面上写作时,那是在更深层次的东西之下。
服务器似乎一直在运行,所以我并没有对此感到恐慌,但我想深入了解它以阻止这些错误。有谁知道这会是什么原因造成的?
我想构建一个相对较长的字符串(如果重要的话是SVG)并从函数返回它.在Elixir中构建这样一个字符串的最佳方法是什么?在其他语言中,我会使用类似StringBuilder类的东西.Elixir中有相同的东西吗?
您可以使用<>运算符追加字符串,但这不仅仅是一个列表追加吗?似乎做了很多这样的事情会变得非常低效.