109 lines
8.2 KiB
HTML
109 lines
8.2 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
|
|
<!-- generated by to_html.pl from dictionary.xml -->
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<title>Dictionary クラス</title>
|
|
<meta name="author" content="W.Dee" />
|
|
<meta http-equiv="Content-Style-Type" content="text/css" />
|
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
<link href="browser.css" type="text/css" rel="stylesheet" title="吉里吉里関連リファレンス用標準スタイル" />
|
|
<link href="mailto:[email protected]" rev="Made" />
|
|
<link href="index.html" target="_top" rel="Start" title="トップページ" />
|
|
</head>
|
|
<body>
|
|
<h1><a id="id72" name="id72">Dictionary クラス</a>
|
|
</h1><div class="para"><div>
|
|
Dictionary クラスは<a id="id73" name="id73" class="targanchor"><dfn>辞書配列</dfn></a>を扱うクラスです。<br />
|
|
<br />
|
|
辞書配列は<a id="id74" name="id74" class="targanchor"><dfn>連想配列</dfn></a>とも呼ばれ、名前と、それに結びつけられた値を一つのペアとして、それを複数保持するオブジェクトです。<br />
|
|
配列と同じように <a id="id75" name="id75" class="targanchor"><dfn>[ ]</dfn></a> (間接参照) 演算子でアクセスしますが、添え字の代わりに文字列を使い、それが名前となります。名前が識別子として有効なものであれば、 <a id="id76" name="id76" class="targanchor"><dfn>.</dfn></a> (直接参照) 演算子も使うことができます。<br />
|
|
また、存在しない名前を参照すると void になります。<br />
|
|
要素を削除するには delete 演算子を使います。<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> var d=new Dictionary();<br />
|
|
d["sat"] = 1; <span class="comment">// d.sat = 1 と同じ</span><br />
|
|
d["sun"] = 2; <span class="comment">// d.sun = 2 と同じ</span><br />
|
|
d["mon"] = 3; <span class="comment">// d.mon = 3 と同じ</span><br />
|
|
d["name"] ="value!"; <span class="comment">// d.name = "value!" と同じ</span><br />
|
|
d["continue"] = 4; <span class="comment">// continue は識別子ではないが OK</span><br />
|
|
d.continue = 4; <span class="comment">// continue は識別子ではないのでエラー</span><br />
|
|
<br />
|
|
var sat = d["sat"]; <span class="comment">// 1 が代入される</span><br />
|
|
var none = d["none"]; <span class="comment">// void が代入される</span><br />
|
|
<br />
|
|
delete d.sat; <span class="comment">// sat を削除</span><br />
|
|
delete d["continue"]; <span class="comment">// continue を削除</span><br />
|
|
</code>
|
|
<br />
|
|
|
|
<br />
|
|
</div></div>
|
|
|
|
<h1><a id="id77" name="id77">式中辞書配列</a>
|
|
</h1><div class="para"><div>
|
|
<code class="inlinecode"><a id="id78" name="id78" class="targanchor"><dfn>%[ ]</dfn></a></code> を使って、式中に <code class="inlinecode">Dictionary</code> クラスのオブジェクトをその場で記述することができます。要素名 => 要素の値、をカンマで区切り、初期要素となる式を列挙します。たとえば、<br />
|
|
<code class="inlinecode"> var dic = %["a" => 1, "b" => 2, "c" => 3];<br />
|
|
</code> と記述すれば、<code class="inlinecode">dic</code> に、要素名と要素の組がそれぞれ <code class="inlinecode">"a":1</code>、 <code class="inlinecode">"b":2</code>、 <code class="inlinecode">"c":3</code> となる <code class="inlinecode">Dictionary</code> クラスのオブジェクトへの参照が代入されます。<br />
|
|
内部的には、<code class="inlinecode">=></code> はカンマと全く同じものですが、読みやすさを考え、<code class="inlinecode">=></code> を使用できるようになっています ( perl と同じです )。<br />
|
|
</div></div>
|
|
<h1><a id="id79" name="id79">Dictionary クラスのメソッドへのアクセス</a>
|
|
</h1><div class="para"><div>
|
|
Dictionary クラスのオブジェクトは、作成された状態ではメンバを何一つ持っていません。<br />
|
|
たとえば、assign メソッドを使おうと思って、Dictionary クラスのオブジェクト dict に対して<code class="inlinecode">dict.assign(src)</code> のように記述しても、dict が assign というメソッドを持っていないためにエラーになります。<br />
|
|
したがって、<a id="id80" name="id80" class="targanchor"><dfn>incontextof</dfn></a> 演算子を使って、Dictionary クラスに直接属しているメソッドを、対象となる Dictionary クラスのオブジェクトをコンテキストとして実行させます。<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> var a = %[];<br />
|
|
var b = %[];<br />
|
|
(Dictionary.assign incontextof a)(b); <span class="comment">// b を a にコピー</span><br />
|
|
(Dictionary.clear incontextof b)(); <span class="comment">// b の内容をクリア</span><br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id81" name="id81">saveStruct</a>
|
|
</h1><div class="para"><div>
|
|
saveStruct はファイルへ構造化されたデータの出力を行います。<br />
|
|
<a target="main" class="jump" href="array.html">Array クラス</a> の同メソッド参照してください。<br />
|
|
</div></div>
|
|
<h1><a id="id82" name="id82">assign</a>
|
|
</h1><div class="para"><div>
|
|
assign メソッドは、辞書配列をコピーします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : assign(<コピー元辞書配列>, <内容をクリアするか=true>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
引数で指定された他の辞書配列の内容を、そっくりコピーします。<br />
|
|
「内容をクリアするか」が偽の場合は、コピー先 (メソッドを実行するオブジェクト) の内容をクリアせず、コピー元辞書配列の内容を上書きします。コピー元辞書配列と同じ名前のメンバがコピー先辞書配列にあった場合は、コピー元の内容でコピー先が上書きされます。<br />
|
|
<br />
|
|
配列 (Arrayクラスのオブジェクト) をコピー元配列に指定した場合は、その配列には、この辞書配列のメンバとなるべき要素が名前、値の順に並んでいるとみなし、その配列の内容をこの辞書配列にコピーします。<br />
|
|
</div></div>
|
|
<h1><a id="id83" name="id83">assignStruct</a>
|
|
</h1><div class="para"><div>
|
|
assignStruct メソッドは、辞書配列をコピーします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : assignStruct(<コピー元辞書配列>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
引数で指定された他の辞書配列の内容を、そっくりコピーします。<br />
|
|
assign メソッドと違い、メンバに配列あるいは辞書配列があった場合は、再帰的にその内容も
|
|
コピーします ( assign メソッドの場合は参照がコピーされるだけです )。<br />
|
|
</div></div>
|
|
<h1><a id="id84" name="id84">clear</a>
|
|
</h1><div class="para"><div>
|
|
clear メソッドは、辞書配列の内容をすべて消去します。<br />
|
|
</div></div>
|
|
|
|
<script type="text/javascript" charset="UTF-8" src="documentid.js" ></script>
|
|
<script type="text/javascript" charset="UTF-8" src="postcontent.js" ></script>
|
|
</body>
|
|
</html>
|