« 生きてるよ | メイン | JavaFX Script が楽しげ♪ »

文字列の計算 日記

何となく、後輩と話してて出てきたネタ。
例えば、

"foo" * 5;

の結果は言語によって異なる。

更に

"3" * 5;

の結果も言語によって異なる。

面白いなぁと思ったので
まとめもせずダラ書きしてみる

Perl

yoshiori@macBook $ perl -e 'print "foo" * 5'
0
yoshiori@macBook $ perl -e 'print "3" * 5'
15

Python

yoshiori@macBook $ python -c 'print "foo" * 5'
foofoofoofoofoo
yoshiori@macBook $ python -c 'print "3" * 5'
33333

Ruby

yoshiori@macBook $ ruby -e 'print "foo" * 5'
foofoofoofoofoo
yoshiori@macBook $ ruby -e 'print "3" * 5'
33333

JavaScript だと

"foo" * 5 が 「NaN(Not a Number)」になって
"3" * 5 は 15 になる。

JavaFxScript の仕様の話してたのに
いつの間にか連想配列に行きこんな話になってた・・・

というダラ書きで今日の「0.1」

p.s.

yoshiori@macBook $ jrunscript -e 'print( "3" * 5 );'
15

トラックバック

このエントリーのトラックバックURL:

TBスパムを弾く為、言及の無いTBは受け付けていません。

コメント

確かにそれはある。 でも、PerlとJavaScript が正しいような。 結局"foo" だとNullだから、0かNaNじゃない? ん~でもPythonとRubyの計算も捨てがたいような… ま、コード書いてるときは気をつけろと言うことだね。

>PerlとJavaScript が正しいような。
そうなんですが、
"3" + 5
とかやると更にカオスになります♪

Perl は文字列の連結に 「.」使うので
普通に 「8」になるのですが
JavaScript は文字列の連結に「+」使うので「35」になるのですw

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

人気のエントリー

▼すべて表示
generated by レビュー・ポスター

あわせて読みたい

あわせて読みたい