Lua中是否有一个全局变量包含当前正在解释的文件的路径?像Python的__file__变量?
我for k, v in pairs(_G) do print(k) end在翻译中跑了一下,看看能不能找到任何东西.只列出了以下变量?
string xpcall package tostring print os unpack require getfenv setmetatable next assert tonumber io rawequal collectgarbage getmetatable module rawset math debug pcall table newproxy type coroutine _G select gcinfo pairs rawget loadstring ipairs _VERSION dofile setfenv load error loadfile
有关如何获取当前正在执行的文件的路径的任何建议?
在erlang中,定义UTF-8二进制字符串时,我需要在二进制文字中指定编码,如下所示:
Star = <<"?"/utf8>>.
> <<226,152,133>>
io:format("~ts~n", [Star]).
> ?
> ok
Run Code Online (Sandbox Code Playgroud)
但是,如果/utf8省略了编码,则无法正确处理unicode字符:
Star1 = <<"?">>.
> <<5>>
io:format("~ts~n", [Star1]).
> ^E
> ok
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以创建这样的文字二进制字符串,而不必/utf8在我创建的每个二进制文件中都指定?我的代码有很多这样的二进制文件,事情变得很混乱。有没有办法为二进制文件设置某种默认编码?
我为我编写的Erlang应用程序提供了几十个Common Test测试套件模块.所有测试都通过了,但我觉得测试套件非常脆弱.重新排序测试会导致其中一些失败.我没有阅读Common Test文档中的依赖项章节,我经常对单元测试中的应用程序状态做出假设.现在我想让我的测试套件更加强大.
随机化测试订单?
来自Ruby,Rspec以随机顺序运行测试,我希望在Common Test中具有相同的功能.有没有人知道是否有办法在Common Test中随机化测试顺序?我没有在文档中看到有关随机化测试顺序的任何内容.
随机化返回值all/0和groups/0?
我还想过改变all/0和groups/0回调的输出.现在他们只返回硬编码列表.也许我可以随机化元素的排序并让它们每次以不同的顺序运行?有没有人通过更改Common Test中的回调返回值来随机化测试顺序?我还需要一种方法来重新运行测试,导致它们像Rspec的--seed标志一样失败.
提前致谢!
为什么HL7 v2消息中的所有文本值都大写?例如,其中一个示例消息中的名称字段如下所示:
SANDIEGO^CARMEN^^^^
Run Code Online (Sandbox Code Playgroud)
为什么不使用小写字母?如果所有字母都大写,则案例信息将丢失.似乎最初的情况会更好:
Sandiego^Carmen^^^^
Run Code Online (Sandbox Code Playgroud)
这有什么技术原因吗?
我是 Erlang 新手,所以我正在编写一个示例程序,并努力决定是否应该使用数组或列表。两者都很容易创建和处理,但我没有得到:
array:set(array:size(A),"a",A)要走的路吗?lists:member()。我是否必须迭代整个数组并检查每个元素?最后,就性能而言,哪一个更好?
我想在我的 Elixir 项目中拥有两组独立的单元测试,我可以使用不同的 ExUnit 配置单独运行它们。我正在开发 ExUnit 格式化程序,并尝试为其编写单元测试。为了测试它,我想我会创建另一个目录 ( example_tests),其中包含test_helper.exs一个与 中的文件类似的文件test/,但 ExUnit 配置为使用我的自定义格式化程序。我将格式化程序添加为 ExUnit 格式化程序,然后创建了一个测试模块example_tests。现在的问题是我不知道如何配置 ExUnit 以example_tests/使用 中指定的配置运行所有测试example_tests/test_helper.exs。
我发现有一个test_paths配置参数无法在文件中设置mix.exs。问题是该值是在每个项目的基础上设置的,我需要它有两个不同的值(通常只是["test"]但随后用于使用格式化程序进行测试运行["example_tests"])。我假设我可以在每个任务的基础上覆盖配置值,因此我也创建了一个 example_tests 任务,但我不知道如何更改配置。
有没有办法Mix.Project.config在每个任务的基础上自定义项目配置()?或者,是否有更好的方法来创建具有不同 ExUnit 配置的两组独立的测试?
更新:
以下是 Mix 任务源代码的链接test:https://github.com/elixir-lang/elixir/blob/master/lib/mix/lib/mix/tasks/test.ex
可以像这样采用引用的Elixir表达式(AST树):
quote do: 1 + 1
=> {:+, [context: Elixir, import: Kernel], [1, 1]}
Run Code Online (Sandbox Code Playgroud)
并将其转换为Erlang AST?
我查看了代码模块以及一些寻找功能的内核模块,但是我找不到任何东西.我甚至不确定这是否可能......我不知道如何在Ellang AST中表示像Elixir宏这样的东西.
提前致谢!
有没有办法在 Erlang 中创建一流的模式?我需要能够创建模式并将其作为参数传递给其他函数,但我知道模式在 Erlang 中并不是一流的。我还研究了 Elixir,但就模式而言,它似乎没有提供更多信息。
我想知道是否有人想出了一个简单的解决方案来解决这个问题。我正在考虑尝试实现这样的东西:
% Instead of using variables, we would just use uppercase atoms which would serve as vars
% A passable pattern
Pattern = {ok, 'Result'}.
% Custom function to check for matches
match(pattern, {ok, [1,2,3]}). % => true
Run Code Online (Sandbox Code Playgroud)
我是 Erlang 的新手,所以也许这完全没有必要。也许有一个图书馆可以做这种事情?
任何意见是极大的赞赏。提前致谢!
我遇到了有关如何在列表中查找值的问题,我也知道lists:member/2。
有没有类似lists:member/2二进制字符串的东西?我需要检查二进制文件中是否存在值。我想象这样的事情:
value_in_binary(<<"Some random data">>, <<"d">>).
%> true
Run Code Online (Sandbox Code Playgroud)
有这样的事情存在吗?如果没有,我将如何实现这样的功能?
Erlang 类型规范是否属于 .hrl 文件(这些文件被加载到任何需要它们的 .erl 文件中),或者应该将它们保存在 Erlang 模块中,然后导出(这将允许它们在其他模块中使用)?在我看来,这两种方法都可以实现相同的目标。
提前致谢!
erlang ×7
elixir ×3
binary ×2
encoding ×2
unit-testing ×2
arrays ×1
beam ×1
common-test ×1
comparison ×1
default ×1
elixir-mix ×1
filenames ×1
filesystems ×1
first-class ×1
header-files ×1
hl7 ×1
hl7-v2 ×1
interpreter ×1
list ×1
lua ×1
module ×1
performance ×1
quote ×1
random ×1
string ×1
text ×1
types ×1
unicode ×1
utf-8 ×1