🖥

Ruby | String#next は存在するけど String#prev は存在しない?

2023/08/26に公開

next

Aの次はB。

'A'.next

Zの次は AA。

'Z'.next

# => "AA"

prev

だが Bの前は A じゃない。

'B'.prev

# => NoMethodError: undefined method `prev' for "B":String

理由

  • StackOverflow には「構造的に出来ない」ふうな図が乗っていた、がちゃんと調べたわけではないので定かではない。

image

String#ord を取って引き算するやり方も載っていたが、1バイトの文字の場合にしか対応していない。

('B'.ord-1).chr # => 'A'
('$'.ord-1).chr # => '#'

環境

  • ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2016-07-06

Discussion