どの言語でも
10 * 3
という式を評価するとたいていは
30
という数値が得られる。
単純に10という数値に3を掛けた結果だ。
この'*'という演算子はRubyやPythonでは文字列に対しても適用できる。
例えば
str = 'ABC' str * 3
とすれば'ABCABCABC'という文字列を得ることが出来る。
非常にわかりやすいが、これを他の言語で実現するにはどうすればいいか?
Perlでは似た形で同じような機能が提供されている。
具体的には
$str = 'ABC'; $str x 3;
とすればいい。
アスタリスク(*)が英文字の'x'になっただけだがこの場合はx演算子の前後には必ずスペースが必要だ。
$strx3;
こうした時は'$strx3'という変数名を参照した事になってしまう。
PHPでは組み込みの関数で
str_repeat($str, 3);
とすれば同様の結果が得られる。
ではJavascriptではどうだろう。
FireBugでいろいろ試してみたがそれらしいものは見あたらない。
ただし下記のコードで目的は達成できる。
Array(4).join('ABC');
これで同様に'ABCABCABC'という文字列を生成する。 ここで注意しなければいけないのは例えば3回繰り返しを行いたいときは"Arrayコンストラクタには4を渡す"ということだ。
Array(4)を実行した時点では
[undefined, undefined, undefined, undefined]
という配列が出来ている。
この要素一つ一つを空文字と見立てそれらを'ABC'という文字列で連結している。
具体的には
'' + 'ABC' + '' + 'ABC' + '' + 'ABC' + ''
を行っている事と同じなのだ。
カテゴリ:
- Javascript,
- PHP,
- Perl,
- Python,
- Ruby
トラックバック(0)
トラックバックURL: http://blog.beanz-net.jp/beanz_mtos/mt-tb.cgi/41
コメントする