FC2ブログ
2011
03.30

* と x

Category: perl
$ perl -e "print 'A' x 10"
AAAAAAAAAA

$ perl -e "print 'A' * 10"
0


そうか、なるほど・・・。

ちなみに、他の言語では

python:
$ python -c "print 'A' x 10;"
File "", line 1
print 'A' x 10;
^
SyntaxError: invalid syntax

$ python -c "print 'A' * 10;"
AAAAAAAAAA


ruby:
$ ruby -e "print 'A' x 10;"
-e:1: syntax error
print 'A' x 10;

$ ruby -e "print 'A' * 10;"
AAAAAAAAAA


php:
$ php -r "print 'A' x 10;"
PHP Parse error: syntax error, unexpected T_STRING in Command line code on line 1

$ php -r "print 'A' * 10;"
0


x を演算子として使えるのは この中では perl だけのようで。
文字列演算子というらしい。全然知らなかったやばい!

PHPだけ挙動が違うというか、文字が連続しないで数値計算される件については
やっぱりPHPの==比較が理解できない
PHP の == についてやっと理解できた・・のか?
あたりを参照してもらえれば。

ちなみに、"print '0xAA' * 10" を実行してみると
$ perl -e "print '0xAA' * 10 "
0
$ ruby -e "print '0xAA' * 10 "
0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA
$ php -r "print '0xAA' * 10 ;"
1700
$ python -c "print '0xAA' * 10 ;"
0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA0xAA

スポンサーサイト




トラックバックURL
http://noriko3.blog42.fc2.com/tb.php/549-0b94d754
トラックバック
コメント
管理者にだけ表示を許可する
 
back-to-top