背景我在玩守卫,我希望我的守卫定义也有一个类型规范: 问题所以,现在我有了这个简单的守卫,我想要它的规格。 然而,dyalizer 的建议并不完全是人类可读的。 我相信这可能被定义为一个 function ,它接受any作为参数,但返回类型对我来说很难理解。 我认为这意味着它会创建 erlang ...
背景我在玩守卫,我希望我的守卫定义也有一个类型规范: 问题所以,现在我有了这个简单的守卫,我想要它的规格。 然而,dyalizer 的建议并不完全是人类可读的。 我相信这可能被定义为一个 function ,它接受any作为参数,但返回类型对我来说很难理解。 我认为这意味着它会创建 erlang ...
我有一种行为来抽象解析各种 Phoenix 端点的 URL 查询参数。 它看起来像这样: 一个简单的实现如下所示: 我在这里真正想说的是: 实现模块应该提供一个结构(称之为t() ) from_query_params/1上的成功类型应该使用该结构t() ,而不仅仅是任何结构我怀疑 Elixir ...
我是 C++ 新手,想用自动变量构建一个堆栈,但是,在数组中出现一系列错误,dr 可以帮助我修复它,谢谢。 显然数组 a 被错误地声明并且 top() 函数发生冲突,但我没有看到这个问题,因为我对自动变量不太熟悉,我有点迷茫。 这是代码和错误: 错误: ...
C++ Primer 一书的第 7.4.1 章说: 通常,内部 scope 可以从外部 scope 重新定义名称,即使该名称已在内部 scope 中使用。 但是,在 class 中,如果成员使用来自外部 scope 的名称并且该名称是类型,则 class 随后可能不会重新定义该名称这个词随后让我 ...
我有以下代码: 根据@type定义, foo和baz_id不应为nil 。 但是, dialyzer抱怨(使用给定的@spec ),因为默认值%__MODULE__{}会将它们设置为nil 。 如果我将@type定义替换为: 那么dialyzer不会抱怨,但我不再认为某些字段不可为空。 什么是让ch ...
我有一些宏定义了具有特殊字符的函数。 特别是“:”和“。”。 是否可以为其中包含这些字符的函数编写规范定义?defmodule UniqueCharacters do defmacro make_wild_function_name do function_name = String. ...
在 Erlang 标准库的类型规范中,在when子句之前,规范中几乎没有任何类型。 例如, lists:member/2的规范是这样的:-spec member(Elem, List) -> boolean() when Elem :: T, List :: [T], ...
我有一个返回地图的函数,我想为其定义自定义类型。 这样做的过程非常简单,除了处理此处文档中的key_type时: %{required(key_type) => value_type} # map with required pairs of key_type and value_type ...
这是我要添加规范的代码。 第一个规范定义可以正常工作。 但是,我想更清楚一点,如果原因是整数,那么返回的错误也将包含一个整数。 第二个规范不起作用。 错误是 ...
我有这种方法 然后,我将该方法与查询链接起来: 该代码正常工作,但显然对于dialyzer order_by没有返回Ecto.Query.t因为它抱怨: 调用'modify_query'...没有类型为atom()的术语| 'Elixir.Ecto.Query':t( ...
例如我有一个像 但是我不想为bar生成文档,因为它打算使用内部实现。 ...
我正在将Elixir库移植到大量使用类型规范的Elm中,但是在查找有关某些语法的文档时遇到了麻烦。 以下类型表达式表示什么? 最初,我将其建模为元组,但现在我正在研究它的用法,好像它可能是一个有区别的联盟。 但是,这种假设的问题在于,我在这里看不到任何支持此类事情的文档( htt ...
如果定义类型规范并使用其他类型的参数,则将显示类似于以下内容的错误: 例如,此typespec: 但是它似乎不适用于类型列表,或者至少不会显示警告,如果我有一个接收字符串列表的方法,我将定义此类型规范: 然后,我可以为列表定义任何规范,并且在运行透析器时也不会抱怨,即: ...
定义typespec时,binary,String.t,char_list,[char]等之间有何区别? 和 它们相等吗? Doc说: 二进制用于Elixir字符串。 char_list用于Erlang字符串。 定义为[char]。 ...