ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  420  : 記事  0  : コメント  9436  : トラックバック  76

ニュース

さて、今年は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

Ruby1.8から1.9への大きな変更点として、文字列のインスタンスがエンコーディング情報を持つそうです。
そしてこれまで Ruby の文字列はただのバイト配列のように扱われていたものが、文字配列のように振舞うようになるそうです。
str = "あいうえお" として
puts str[2] => 164 だったものが "う" になるそうです。
puts str.size => 10 だったものが 5 になるそうです。
そして str.bitesize => 10 になるそうです。
ひどくない?
既存のソースコードがかなり動かなくなるんじゃないの?
str.charsize => 5 を追加すればよかったんじゃないの?
文字列ですよ?一番多用するオブジェクトですよ?
バイト数と文字数ですよ?文字列の一番根幹な部分ですよ?
正直、理解に苦しみます。
投稿日時 : 2008年2月26日 2:16

コメント

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/02/26 9:36 シャノン
Rubyなんて、もともとそんなもんじゃないんですかね。
作ってるのは個人だし。
無理に移行することも無いでしょう。

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/02/26 9:39 ゆーち
こんちは。
お初(?)
m(_._)m

るびー使いではありませんが、そいつは一大事ですね。
既存コードを資産として認めてくれてない・・・ってのはよろしくなさそう。

いっそのこと別の言語にしてしまってくれた方が、救われる気がしますね。

と、ココまで書いて、perl/ruby の次ってなんだろうと思い、ぐぐりました。
Peridot っていうらしいですね。
んで、さらに言語とかでぐぐって見たら・・・

やはりみな考えることは同じか(ww


# ヒドスorz 2008/02/26 9:55 Out of Memory
ヒドスorz

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/02/26 15:34 凪瀬
バイト数を意識するのは、言語の外界へ出力するタイミングだけでいいと思うのだけどなぁ。(JavaなどはVMとの境目で変換)
言語内では理想的な文字として扱われるのがよいのではないかと。
たとえば、「あ」という文字をエンコードの違いで別の文字と判断するのか?
複数の文字コードを混在して扱う必然性はどうなのだろう。

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/02/27 0:55 THREE-ONE
>シャノンさん
まあ確かに無理に移行はしません。
1.9.*はまだ開発版みたいですし。

>ゆーちさん
多かれ少なかれどの言語でもあることですけど、文字列ってのはちーとひどいなぁと。

>凪瀬さん
その通りだと思います。
ちなみにエンコーディングの異なる "あ" は == で等しいとみなされないみたいですよ。

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/02/29 19:47 Talos
今までが間違っていたので直した、だけでしょう。
ゲイツのとこみたいに古い「仕様」を延々引っ張るよりいいと思う。

# re: Ruby1.8 → 1.9 での文字列の動作について 2008/03/01 20:15 THREE-ONE
そのあたりは、企業か個人かの差でしょうね。
ん~でも size の変更はやりすぎな気がするなぁ。

Post Feedback

タイトル
名前
Url:
コメント: