サカナ未遂

プログラミング、筋トレ、子育て

ブログに技術記事を書く理由

プログラミングなど、勉強しているととても助かるのが技術ブログ。

私くらいのレベルだと、何かしら不明なことがあった場合、Qiitaとかを検索すると、

だいたい解決してしまいます。

 

自分も勉強結果をアウトプットしたいと考えても、調べて出てくることを

書いても仕方がないと思って過ごしていました。

でも、別に技術サイトに投稿するわけでもないので、自分のブログにアウトプットしていくことにしました。

じゃあ日記にでもつけとけよとか言われるとまぁそうなんですけど、"いつか誰かが何かのきっかけで見るかもしれない"という緊張感があるので、適当なことは書けない、という気持ちになるのため、あえてブログに書くことにしました。

技術のこともさることながら、ブログを書くことも初めてなので、ブログの書き方、技術的な記事の書き方を徐々に学んでいこうと思います。

できれば週一くらいで更新したいとは思いますが、あまりこだわらずコツコツ続けていこうと思います。

 

Rubyのinjectでハマったのでメモ

 アラフォーでRuby未経験ながら、Ruby技術者認定試験を取得することにしました。

 

まだ始めて一週間ほどですが、いきなりハマったとこがあるのでメモ。

a = [1,2,3]
puts a.inject{|ret,n| ret * n}

 と、ある模擬問題であったけど、injectにパラメータがない。

パラメータを省略した場合、何になるのだろうか?

勝手な予想だけど'0'だと思い、'0'に何を掛けても'0'だと思った。

しかしputsの結果が'6'となる。

これが理解できなかった。

injectの引数を指定しないと初期値は何なのか?

Rubyの参考書とかを見ても、injectはだいたい引数付きで、

indject(0)とかになっている。

結局公式リファレンスにたどり着いた。

module Enumerable (Ruby 2.1.0)

 >初期値 init を省略した場合は、 最初に先頭の要素と 2 番目の要素をブロックに渡します。

こう書いてあった。

だらか上記ソースは 1 * 2 * 3 となり6になるというわけですね。

昔からの癖で、本に書いてないとすぐハマるけど、公式リファレンスを最初に

確認するようにしないといけないなぁ。