[英]How to typespec guards in a human friendly way?
背景我在玩守衛,我希望我的守衛定義也有一個類型規范: 問題所以,現在我有了這個簡單的守衛,我想要它的規格。 然而,dyalizer 的建議並不完全是人類可讀的。 我相信這可能被定義為一個 function ,它接受any作為參數,但返回類型對我來說很難理解。 我認為這意味着它會創建 erlang ...
[英]How to typespec guards in a human friendly way?
背景我在玩守衛,我希望我的守衛定義也有一個類型規范: 問題所以,現在我有了這個簡單的守衛,我想要它的規格。 然而,dyalizer 的建議並不完全是人類可讀的。 我相信這可能被定義為一個 function ,它接受any作為參數,但返回類型對我來說很難理解。 我認為這意味着它會創建 erlang ...
[英]Elixir Behaviour that returns the implementer's struct type
我有一種行為來抽象解析各種 Phoenix 端點的 URL 查詢參數。 它看起來像這樣: 一個簡單的實現如下所示: 我在這里真正想說的是: 實現模塊應該提供一個結構(稱之為t() ) from_query_params/1上的成功類型應該使用該結構t() ,而不僅僅是任何結構我懷疑 Elixir ...
[英]Stack auto variable in c++
我是 C++ 新手,想用自動變量構建一個堆棧,但是,在數組中出現一系列錯誤,dr 可以幫助我修復它,謝謝。 顯然數組 a 被錯誤地聲明並且 top() 函數發生沖突,但我沒有看到這個問題,因為我對自動變量不太熟悉,我有點迷茫。 這是代碼和錯誤: 錯誤: ...
[英]Is it legal to redefine a type name?
C++ Primer 一書的第 7.4.1 章說: 通常,內部 scope 可以從外部 scope 重新定義名稱,即使該名稱已在內部 scope 中使用。 但是,在 class 中,如果成員使用來自外部 scope 的名稱並且該名稱是類型,則 class 隨后可能不會重新定義該名稱這個詞隨后讓我 ...
[英]`changeset()` spec requires nullable type which is not logically nullable
我有以下代碼: 根據@type定義, foo和baz_id不應為nil 。 但是, dialyzer抱怨(使用給定的@spec ),因為默認值%__MODULE__{}會將它們設置為nil 。 如果我將@type定義替換為: 那么dialyzer不會抱怨,但我不再認為某些字段不可為空。 什么是讓ch ...
[英]How do I write a spec for a function that contains special characters?
我有一些宏定義了具有特殊字符的函數。 特別是“:”和“。”。 是否可以為其中包含這些字符的函數編寫規范定義?defmodule UniqueCharacters do defmacro make_wild_function_name do function_name = String. ...
[英]Why do type specs in OTP repeat parameter names?
在 Erlang 標准庫的類型規范中,在when子句之前,規范中幾乎沒有任何類型。 例如, lists:member/2的規范是這樣的:-spec member(Elem, List) -> boolean() when Elem :: T, List :: [T], ...
[英]Elixir: Specifying `key_type` for a map, where `key_type` is an enumerated type
我有一個返回地圖的函數,我想為其定義自定義類型。 這樣做的過程非常簡單,除了處理此處文檔中的key_type時: %{required(key_type) => value_type} # map with required pairs of key_type and value_type ...
[英]“spec has wrong arity” seen when using guard clause for Elixir spec definition
這是我要添加規范的代碼。 第一個規范定義可以正常工作。 但是,我想更清楚一點,如果原因是整數,那么返回的錯誤也將包含一個整數。 第二個規范不起作用。 錯誤是 ...
[英]Dialyxir error order_by doesnt return Ecto.Query.t
我有這種方法 然后,我將該方法與查詢鏈接起來: 該代碼正常工作,但顯然對於dialyzer order_by沒有返回Ecto.Query.t因為它抱怨: 調用'modify_query'...沒有類型為atom()的術語| 'Elixir.Ecto.Query':t( ...
[英]How to disable doc generating for type definitions in Elixir?
例如我有一個像 但是我不想為bar生成文檔,因為它打算使用內部實現。 ...
[英]What is the meaning of an Elixir typespec with types in parenthesis separated by the pipe operator?
我正在將Elixir庫移植到大量使用類型規范的Elm中,但是在查找有關某些語法的文檔時遇到了麻煩。 以下類型表達式表示什么? 最初,我將其建模為元組,但現在我正在研究它的用法,好像它可能是一個有區別的聯盟。 但是,這種假設的問題在於,我在這里看不到任何支持此類事情的文檔( htt ...
[英]Typed list typespec never breaks the contract
如果定義類型規范並使用其他類型的參數,則將顯示類似於以下內容的錯誤: 例如,此typespec: 但是它似乎不適用於類型列表,或者至少不會顯示警告,如果我有一個接收字符串列表的方法,我將定義此類型規范: 然后,我可以為列表定義任何規范,並且在運行透析器時也不會抱怨,即: ...
[英]Difference between binary, String.t, char_list and [char] in a typespec
定義typespec時,binary,String.t,char_list,[char]等之間有何區別? 和 它們相等嗎? Doc說: 二進制用於Elixir字符串。 char_list用於Erlang字符串。 定義為[char]。 ...