私は、サーバーと呼ばれるクラスのオブジェクトのコレクションを持っています。サーバーには文字列プロパティがあり、そのIPアドレスだけでなく、他の多くのデータやオブジェクトもあります。ActionScript 3のC#の汎用辞書の類義語は何ですか?
このコレクションにサーバーを追加したり削除したりする方法があります。そのIPアドレスでサーバーを見つける必要があることがあります。もし私がC#でこれをやっていたら、辞書<を使います。ここでIP文字列がキーになり、Serverオブジェクトがその値になります。私はそれを追加しようとする前に、アイテムが辞書に存在するかどうかを簡単に確認することができます。
私の要件は以下の通りです。 1.コレクションにアイテムを追加する機能(前面、背面、中央のどこに行っても構わない)2.コレクションのどこからでもアイテムを削除する機能。 3.特定のIPアドレスがコレクションに既に存在するかどうかを判断する機能。 4. Serverオブジェクトへの参照をIPで取得する機能。 編集:ああ、私はVectorのように厳密に型付けされたいと思っています...私はそれが絶対に必要ではないと思いますが、いいと思います。
それで、連想配列が私に必要なものを与えてくれるように思えますが、#3や#4のやり方についてはわかりません。
public var Servers:Object = new Object();
public function AddServer(server:Server):void
{
//TODO:need to check if it exists first and throw an error if so
//(it's the caller's responsibility to call DoesServerExist first)
Servers[server.IP] = server;
}
public function RemoveServer(IP:string):void
{
//is it OK to attempt to delete an item if it doesn't already exist?
//do I need to check if it exists before doing delete?
delete Servers[IP];
}
public function DoesServerExist(IP:string):bool
{
//Do I loop through all the elements testing it's IP property?
//Or can I just do something like this?
if(Servers[IP] == null)
{
return false;
}
else
{
return true;
}
}
public function GetServer(IP:string):Server
{
return Servers[IP];//what is returned if this IP doesn't exist?
}
個人的に私はintsとしてIPアドレスを保存します... 32ビットは有効なIPです... "123.456.789.876"は...デザインに関して、私はその変数をプライベート/プロテクトにします...慣習では、UpperCamelCaseはas3のクラス用に予約されていますが、完全に主観的ですが、いくつかのコラボレーションを開始する予定がある場合は、おそらくそれに慣れたいと考えています... – back2dos
あなたが見たいかもしれませんhaxe実際には(haxe.org)...ジェネリックスをサポートしています...ハッシュと一緒に行くことができます。それ以外にも、素晴らしい、若くて有望な言語です... –
back2dos