Ruby 初心者スレッド Part 55
■ このスレッドは過去ログ倉庫に格納されています
0173デフォルトの名無しさん
2014/07/30(水) 21:35:33.47ID:ucnjA6/+http://qiita.com/icoxfog417/items/e8f97a6acad07903b5b0
Pythonは何かとトラップが多い言語で、
引っかかるとなんてゴミ言語と感じてしまうことが少なからずある
要するに Python への批判記事である訳だけど、
この記事の視点を Ruby に当てはめてみよう
・ファイルのエンコードを宣言する必要がある
Ruby => Ruby 1.9 でこのゴミ仕様が取り込まれて危うかったけど、
Ruby 2.0 ではデフォが UTF-8(Unicode) になってゴミを排除できた
・文字列には通常の文字列とユニコード文字列がある
Ruby => Ruby では最初から(少なくとも Ruby 1.4 の時代から)一般的な文字列は
多言語化に対応した String クラス、ただ一つだけしか存在していません
・割り算の結果がfloat型にならない
Ruby => 「強い型付け」による動的型付け言語である Ruby からすれば、
この指摘そのものが規約違反であって、1 / 3 は 0 で 3 / 2 は 1 になるのが自然であり、
もしfloat型が必要であれば、たとえば 1.to_f / 3 のように明示的に型変換すべきと考えます
おそらく著者は「弱い型付け」による動的型付け言語である JavaScript の経験が
長いのでこのような不満を感じたのでしょう、JavaScript は Python 3 と同じ結果になります
js> 1/3
0.3333333333333333
js> 3/2
1.5
そして、Python 3 は「弱い型付け」に向かって変化したのですから、
次の Python 4 では、おそらく以下のような実行結果へと仕様改訂されることでしょう(棒
>>> "A"+1
'A1'
(長いので、一旦ここで切る)
■ このスレッドは過去ログ倉庫に格納されています