4

:state /dos/ の意味を理解しています。Java のように、クラスにフィールドを作成します。私が理解していないのは、これのポイントは何ですか?他のクラスを拡張する Clojure によって生成されたクラスでのみ行われているようです。http://www.fatvat.co.uk/2009/05/clojure-and-robocode.htmlは一例です。私は Java を知りませんし、オブジェクト指向プログラミングにもあまり詳しくありません。誰かが私に :state のポイントを説明できますか?それは Java 相互運用性とどこに適合しますか?

どうもありがとう!

注: :state と言うときは、(:gen-class :state) を指しています。

4

3 に答える 3

3

の詳細stateと初期化方法については、記事gen-class – how it works and how to use it を参照してください。

記事から:

  • :stateオブジェクトの状態を返すメソッドを定義します。
  • :init初期化子の名前を定義します。これはベクトルを返さなければならない関数です。最初の要素は、スーパー クラス コンストラクターへの引数のベクトルです。私たちの場合、これは単なる空のベクトルです。2 番目の要素はオブジェクトの状態です。

要約initすると、オブジェクトの状態を返し、オブジェクトがインスタンス化されるときに呼び出されます。 stateによって返されるベクトルの 2 番目の要素と同じ値を返す、関数とは対照的なクラスのメソッドinitです。

次に、必要に応じてアトムを使用してオブジェクトの状態を変更できるようにする方法を示します。

于 2012-09-11T16:28:08.043 に答える
2

私は #Clojure IRC チャンネルで雇われた男と話しました。それは理にかなっている。

于 2009-07-11T01:38:44.830 に答える