okuの日記: Re: JavaScriptの配列
日記 by
oku
builder by ZDNet Japan は とても”奇妙”なJavaScriptの配列:JavaやCとは違うのだよ より:
JavaScriptの配列は、JavaやCとは全く違うデータ構造だ。このことは、JavaやCの経験が元々ある人の方が気づきにくいかもしれません(僕がそうでした)。
「KornShell の配列に似ている」と書けば「ああ!」と反応する人がそれなりにいるかも知れません。 例えば:
$ set -A a 1 2 3 4
$ echo "${#a[@]}: ${a[@]}"
4: 1 2 3 4
$ a[1000]=500
$ echo "${#a[@]}: ${a[@]}"
5: 1 2 3 4 500
$ echo ${a[1000]}
500
$
# bash の場合は、set の行を declare 形式に置き換えればよい筈。
もっとも、KornShell には「JavaScriptの配列をも~っと深く理解する:lengthの不思議な動作」で解説されているような length プロパティに相当するものはありません。 敢えて言うと、KSH-93 で追加された${!a[@]}が length に近いかも知れません。
# とは言え、自分の知る限り KSH-93 を同梱している商用 Unices ベンダは皆無なのですが。
# Linux や *BSD の場合はそもそも入っていないか、入っていても pdksh だったり。
追記:
${!a[@]}展開は、最近の bash にも実装されているようです (手元で試した限りでは 3.x 以降か)。
Re: JavaScriptの配列 More ログイン