2016-05-24 6 views
1
@spec put_private(t, atom, term) :: t 
    def put_private(%Conn{private: private} = conn, key, value) when is_atom(key) do 
    %{conn | private: Map.put(private, key, value)} 
    end 
+0

Ich kann das Snippet nicht verstehen:% Conn {privat: privat} = conn – liumengjiang

+0

Ich würde annehmen, dass Sie nach dem Verhalten der Funktion fragen. Wahrscheinlich solltest du deine Frage bearbeiten, um die @spec-Zeile am Anfang zu entfernen, weil sie verwirrend ist, um welches _put_private_ es sich handelt. –

Antwort

3

The docs tun einen ziemlich guten Job:

Ordnet einen neuen privaten Schlüssel und Wert in der Verbindung.

Dieser Speicher wird von Bibliotheken und Frameworks verwendet, um das Schreiben in den Benutzerspeicher zu vermeiden (das Feld "Zuweisen"). Es wird empfohlen, dass Bibliotheken/Frameworks den Schlüsseln den Bibliotheksnamen voranstellen.

+0

% Conn {privat: privat} = conn ist eine Musterübereinstimmung mit der Conn, die eine Struktur ist, um den Wert von private: key in der Conn zu erhalten. – liumengjiang

+0

Sie können über Mustervergleich auf einer Karte in http://elixir-lang.org/getting-started/keywords-and-maps.html#maps lesen – Gazler

Verwandte Themen