1
我有2個默認參數功能的元數的仙丹使透析器的默認參數因此抱怨
defp foo(bar, baz, qux \\ "", garply \\ nil)
我有兩個用途的函數,一個只提供前兩個參數,其他全部4.透析器正在抱怨Function foo/3 will never be called
。我認爲這是因爲它是私人的,兩個默認值允許unroll_nodes/2
,unroll_nodes/3
和unroll_nodes/4
。我可以表面上放棄默認設置,並將它們提供給當前的foo/2
調用,但僅僅爲了安撫透析器似乎很愚蠢。有沒有在spec中指定這個的方法?
這是否意味着沒有更好的方式來指定typespec?這確實是一個錯誤的警告?或者這是一種代碼? – kolosy
我想這是Elixir總是生成所有中間頭的組合。另一種方法是使用單獨的函數調用「手動」定義默認值。那麼你只有沒有/ 3版本的/ 2和/ 4版本。 – michalmuskala