私はクラス変数を意味しません。どこでも使用できる変数が必要です。 どこで定義しますか? [鳴き声で]Squeakでグローバル変数を作成する方法は?
答えて
片道は、in this answerのようにシングルトンを作ることです。
一般に、クラス変数とそれに伴うクラスメソッドを使用して、一部のオブジェクトをグローバルにアクセスできるようにします。一例として上記のシングルトンを参照してください。
global := MyClass myGlobalVar
も世界的に変更になったために、ミューテータークラスのメソッドを作成し、好きなそれを呼び出す:このような変数は、他の場所からのアクセス、その後で
MyClass myGlobalVar: true
あり、他の方法があまりにもありますが、クラス変数を持つこの1つはありますスモールトークの方言の周りに移植性があり、長期的には最も安全な方法です。
Squeakはすべてのクラスインスタンスとその他のグローバル変数をSystemDictionaryの "Smalltalk"に保存します。あなたは、このようにグローバル変数を定義することができます:変数variableName
に参照のうえ
Smalltalk at: #variableName put: theValue.
はtheValue
を返します。
しかし、良いSmalltalkスタイルは、グローバル変数を完全に避けることです。
これは一つの可能性ですが、非常に危険なので、Smalltalkersは避けています。誤って既存のクラスと同じ変数に名前を付けると、そのクラスが削除されます...だからこそSqueakでさえ、このアプローチはゆっくりと低下しています。他のスモールトークはそれを持っていないか、それを持っていません。 –
Smalltalkerはグローバル変数を完全に避けることを好みます。 – Nat
Smalltalkのクラスは世界的に利用可能で、好きなときにいつでも変更できます。クラスを作成し、クラスメソッドとして変更コードを追加するだけです。
MyVariable thisOrThat
MyVariable updateThisOrThat: aThisOrThat
- 1. グローバル変数の作成方法は?
- 2. XMLバージョン1.05でグローバル変数を作成する方法は?
- 3. Eclipse PDTアプリケーションでグローバル変数を作成する方法は?
- 4. djangoテンプレートでグローバル変数を作成する方法は?
- 5. Webpackで変数グローバルを作成する方法
- 6. msアクセスでグローバル変数を作成する方法
- 7. Javaでグローバル変数を作成する方法はありますか?
- 8. Xulでグローバル関数を作成する方法は?
- 9. グローバル変数を作成するiPhone/iPad
- 10. グローバル変数の作成?
- 11. MPLAB X IDEを使用してライブラリプロジェクトでグローバル変数を作成する方法
- 12. グローバル変数の作成方法は?ビューやサービスからアクセスするには?
- 13. cakephpでグローバル変数を作成するには3.4
- 14. TypeScriptでのグローバル変数の作成
- 15. C:関数の戻り値でグローバル変数を作成する
- 16. Solarisでグローバル変数を変更する方法は?
- 17. nixファイルでグローバル変数(または関数)を作る方法は?
- 18. そのファイルのみに固有のグローバル変数を作成する方法
- 19. グローバル非キャッシュ変数を作成
- 20. javascriptで関数のグローバル変数を定義する方法は?
- 21. 作る変数グローバル
- 22. CUDAグローバル変数をリセットする方法
- 23. 次のコードはJavaScriptでグローバル変数を作成しますか?
- 24. webpackでグローバル関数を作成する
- 25. AJAXコールで作成されたJavascriptグローバル変数の作成/アクセス
- 26. NUnit 3.2でグローバル初期化を作成する方法は?
- 27. コンポーネント2を角度2でグローバルに作成する方法は?
- 28. 空手にグローバル変数を作成するには?
- 29. ASP.NETセッション固有のグローバル変数を作成するには?
- 30. ロボットフレームワークでグローバル変数を動的に作成する
[OK]をクリックしてあなたのものにアクセスできますが、オブジェクトがすべてのアプリケーションに存在するようにしてください。変数をメタクラス 'オブジェクトクラス'のクラス変数として定義することを考えました。そういう意味で、このオブジェクトはちょうど使えるかもしれませんね。どう思いますか? –
私は確かにObjectや他のシステムのような重要なクラスを変更しないでください。この変数を1つ以上のアプリケーションで使用する場合は、この変数を保持するこのクラスで共通のパッケージを作成します。次に、このパッケージを、他のすべてのパッケージの前提条件としてアプリケーションにロードします。これは今日、Smalltalkのグローバルにとって最も適切な方法と考えられています。 –
これは私の答えだと思います。私はいくつかのquestinsを持っています: 1.アクセス方法を定義する場所? 「MyClassクラス」では? 2.変数を初期化するにはどうすればよいですか? –