[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:2993

From: Sho Hashimoto <sho-h@n...>
Date: Thu, 15 Mar 2012 02:27:38 +0900
Subject: [ruby-reference-manual:2993] [るりまプロジェクト - Bug #5414] 文字列からバイト列を得る方法


Issue #5414 has been updated by Sho Hashimoto.


1.8.6 までは String#bytes はないからかもしれません。
(上記の行がコミットされた r2237 は 2007/11/04 で、1.8.7 のリリース前だったのではないかと)

String#bytes のエントリ中で「バイトごとに分割した文字列を得るため」に String#bytes.to_a というのは自然な発想だと思うので、1.8.6 までで unpack('C*') の行を表示するだけでいいのではないかと思いました。

  --- String	(revision 5079)
  +++ String	(working copy)
  @@ -1350,9 +1350,9 @@
   
   文字列の各バイトに対して繰り返します。
   
  -なお、バイトごとに分割した配列を得たいときは、
  -Ruby 1.8 までなら unpack('C*') を、
  -Ruby 1.9 以降は String#bytes.to_a を使ってください。
  +#@until 1.8.7
  +なお、バイトごとに分割した配列を得たいときは、unpack('C*') を使ってください。
  +#@end
   
   例:
       "str".each_byte do |byte|

----------------------------------------
Bug #5414: 文字列からバイト列を得る方法
https://bugs.ruby-lang.org/issues/5414#change-24581

Author: 5 5
Status: Open
Priority: Low
Assignee: 
Category: doc
Target version: 
reporter: 
ruby_version: 1.9


String#bytes には,

 なお、バイトごとに分割した配列を得たいときは、 Ruby 1.8 までなら unpack('C*') を、 Ruby 1.9 以降は String#bytes.to_a を使ってください。 

という記述がありますが,Ruby 1.9 において,unpack('C*') でなく String#bytes.to_a を使うべき理由があるのならそれを書いたほうがいいかなと思います。
速度では unpack("C*") のほうがずっと速いようです(倍以上)。


-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      2853 2011-10-06 04:08 [redmine@r...        ] [るりまプロジェクト - Bug #5414][Open] 文字列からバイト列を得る方法
->    2993 2012-03-14 18:27 ┗[sho-h@n...          ] [るりまプロジェクト - Bug #5414] 文字列からバイト列を得る方法