五十嵐です。
String#unpack を初めて使ってみたのですが、動作がよくわかりません。
str = "abcde"
a = str[0..2] # => "abc"
str = str[3..-1] # => "de"
と同じ操作を、unpack を使って
str = "abcde"
a, str = str.unpack("a2 a*")
と書け、動作も速くなって喜んでいたのですが、
str = "abcde"
a = str[0] # => 97
str = str[1..-1] # => "bcde"
と同じ操作を
str = "abcde"
a, str = str.unpack("C1 a*")
と書き、これは動作。ところが、
str = ""
a, str = str.unpack("C1 a*")
では、 a == nil, str == "" となると思っていたのですが、
a == "", str == nil になりました。
template文字列(のアルファベット?)のサイズの配列が
返ってくることは保証されないのでしょうか?
--
五十嵐 晃(ikarashi / itlb.te.noda.sut.ac.jp)