LoginSignup
11
0

More than 1 year has passed since last update.

【わたし気になります!】RailsのArray#forty_two

Last updated at Posted at 2023-01-03

Ruby on Railsを用いて開発をしていると、配列の先頭の要素を取得するメソッドや2番目の要素を取得するメソッドなど、特定の位置にある要素を取り出すメソッドをよく使います。

array = %w(apple banana orange lemon grape)
array.first # apple
array.second # banana
array.last # grape

実際、私はこの3つくらいしか使ったことがないですが、他にもRailsの拡張により、多くのメソッドが用意されています。

array.first # 先頭の要素を取得
array.second # 2番目の要素を取得 
array.third # 3番目の要素を取得 
array.fourth # 4番目の要素を取得 
array.fifth # 5番目の要素を取得 
array.forty_two # 42番目の要素を取得 
array.third_to_last # 最後から3番目の要素を取得 
array.second_to_last # 最後から2番目の要素を取得 
array.last # 最後の要素を取得 

......?
forty_twoといういつ使われるか全くわからないのがいます。。。

この存在がとても気になったので、今回はRailsのforty_twoメソッドについて考察します。

コミットログを見てみる

まず、forty_twoが追加されたときのコミットログを見てみます。

タイトルは「Reduced the number of literal aliases to the range that has actually seen personal use. With the massive savings in overhead, I was able to fit Array#forty_two」で、後半部分を読んで思わず「なんでやねん」と言ってしまいました。
そして、コメントの中には「これを待っていたんだ!」「最高!」といった発言もあり、盛り上がっている様子が見られます。

[参考]
https://github.com/rails/rails/commit/e50530ca3ab5db53ebc74314c54b62b91b932389#activesupport/lib/active_support/core_ext/array/access.rb

42の元ネタ

先程見たコミットログのコメントで説明している人がいましたが、42という数字が用いられた背景には「The Hitchhiker’s Guide to the Galaxy」という作品の存在があります。

この作品の中で、スーパーコンピュータに「生命、宇宙、そして万物についての究極の疑問の答え」を計算させるというシーンがあり、そのスーパーコンピュータが750万年の末に出した答えが、「42」なのです。

これにより、「42」という数字はSFファンの中で有名になり、Rubyのメソッドにも使われるようになったのです。

その他にも42が使われている?!

プログラミング言語の中でforty_twoメソッドが用意されているのはRailsのみのようですが、他にも42は色んなところでネタとして使われています。

例えば、Googleで「生命、宇宙、そして万物についての究極の疑問の答え 計算」と検索すると42という結果が出ます。
image.png
そして、もちろん「5 + 生命、宇宙、そして万物についての究極の疑問の答え」は「47」になります。
image.png

また、Siriに「人生ってなに?」と尋ねると「42.」と返ってきます。
IMG_3546.jpg

このように42ネタは広く愛されているようです。

まとめ

今回RailsのArray#forty_twoを発端として42というネタについて調べてきました。私はITに触れてまだ半年ですが、こういうネタにも精通して業界の文化もたくさん知りたいなぁと思います。

11
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
0