2017-11-08 3 views
1

ich aus dem person1 den folgenden Code-Snippet die Stadt Feld extrahieren möchten:Clojure: Ausschnitt Feld von defrecord

(defrecord Address [city state]) 

(defrecord Person [firstname lastname ^Address address]) 

(defn make-person ([fname lname city state] 
       (->Person fname lname (->Address city state)))) 
(def person1 (make-person "Mark" "Smith" "LA" "CA")) 

Danke, R.

Antwort

1
(prn (str (:state (:address person1)))) 
+0

Dies ist nicht eine Antwort auf die Frage liefert. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/17874657) – KDeogharkar

1

Sie kann Defrecord wie eine Karte verwenden. Der person1 Datensatz hat die folgende Struktur:

{:address #ns.Address {:city "LA", :state "CA"}, 
:firstname "Mark", 
:lastname "Smith"} 

, das ist, warum Sie das Feld Stadt von zugreifen können:

(:city (:address person1)) 
==> "LA"