Clojure-agent

提供:Dev Guides
移動先:案内検索

Clojure-エージェント

エージェントは、agentコマンドを使用して作成されます。

構文

構文は次のとおりです。

(agent state)

パラメータ-「状態」は、エージェントに割り当てられるべき初期状態です。

戻り値-現在の状態と値を持つエージェントオブジェクトを返します。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println counter))
(Example)

出力

上記のプログラムは、次の出力を生成します。

#object[clojure.lang.Agent 0x371c02e5 {:status :ready, :val 0}]

アトムデータタイプと同様に、エージェントにもステータスと値が関連付けられていることがわかります。 エージェントの値に直接アクセスするには、変数名とともに@symbolを使用する必要があります。

これがどのように使用されるかの例は、次のプログラムに示されています。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter))
(Example)

出力

上記のプログラムは、次の出力を生成します。

0

上記のプログラムから、@ counterのような@記号を追加すると、エージェント変数の値にアクセスできることが明確にわかります。