2016-01-26 17 views
8

protocol String.Chars uygulamak zorunda kalmadan nasıl bir harita/struct type ELixir oturum açarsınız? Bu kayıt cihazı ile basılabilir bir cebir belgesine veri yapısı ayrıştırır https://hexdocs.pm/elixir/Kernel.html#inspect/2Elixir'de harita/yapı nasıl kaydedilir?

-

require Logger 
Logger.debug %{my: "map"} 
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{my: "map"} 
    (elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1 
    (elixir) lib/string/chars.ex:17: String.Chars.to_string/1 

cevap

17

için inspect/2 kullanabilir.

iex(4)> Logger.debug inspect(%{a: 1}) 
08:47:32.776 [debug] %{a: 1} 
:ok 
+1

Ben mantıklı görünüyordu incelemek düşündüm, ama IO.inspect kullanmakta vardı! Sadece açıklama için, Kernel.inspect – Krut

+0

Yukarıda gösterilen bağlantı IO.inspect. Kernel.inspect/2'ye giden gerçek bağlantı şu adreste: http://elixir-lang.org/docs/stable/elixir/Kernel.html#inspect/2 – sat

+0

Kahretsin "IO.inspect" yazarak bir derp gibi yazdım. – igorgue

0

İksir yolu:

iex(3)> %{a: 1} |> inspect |> Logger.debug 

23:20:30.265 [debug] %{a: 1} 
:ok