合計を計算するときとか
sum = 0 (1..10).each {|n| sum += n} puts sum # => 55
よくこんな感じのコードを書いてます。
inject()を用いてこのようにかけるみたいです。
puts (1..10).inject(0) {|sum, n| sum + n} # => 55
ループでの計算結果を入れる変数が、ブロックの中で済んでいるのでスッキリですね。
これからinjectたくさん使っていこうと思います。
追記
# 以下同じ p (1..10).inject(0) {|count, n| count + n} p (0..10).inject {|count, n| count + n} p (1..10).inject(:+)
3つ目すげぇ短い!!
引用
http://d.hatena.ne.jp/kenkitii/20090114/ruby_inject
http://naoty.hatenablog.com/entry/20110726/1311691890
ショッカー届いた。
ショッカーに感銘を受けて買ったものが今日届いた。
この前買ったエガちゃんとコラボ。
これでオレはブレないはずだ。
きっと。
- 出版社/メーカー: バンダイ
- 発売日: 2013/07/13
- メディア: おもちゃ&ホビー
- この商品を含むブログ (2件) を見る
figma 江頭2:50 (ノンスケール ABS&PVC製塗装済み可動フィギュア)
- 出版社/メーカー: フリーイング
- 発売日: 2013/06/22
- メディア: おもちゃ&ホビー
- クリック: 786回
- この商品を含むブログ (10件) を見る
ショッカーが語るリーダーシップと組織論
ショッカーに就職したくなった。
モチベーション3.0 すごく共感&納得しました。
githubでPull Request送られてきたら。
1コ前のエントリ。
ソーシャルコーディング
これを読んでくれた方がいて、さっそくPull Request を送ってくれました。
ありがとうございますm(__)m
github の Pull Request に初挑戦。
@whitech0c0 はじめまして、ブログ拝見しました。ソーシャルコーディングなるものに挑戦したかったため LabRoulette というリポジトリに Pull Request をさせていただきました。初学者なので間違ってたりするかもしれませんが、よろしくお願い致します。
— Yuji Shimoda (@yuji_shimoda) May 25, 2013
とういことで、今回は
@yuji_shimoda さんからもらったPull Requestの変更を検証して安全にマージするということをやりました。
※いつもは同じ研究室の人と近くで話ながらpullとかpushをやっているので、今回のようなケースはちょっと緊張...
githubページには親切にこのような案内がでていたので、この手順に沿って作業開始。
Step1 まずはマージ用のブランチを作成して、そのブランチに切り替えます。
$ git checkout -b ブランチ名 親
Step2 このブランチでpullして実際に動かしてみる
ここでちょっと自分の仕様にするためちょこっと書き換えました。
そして、コミット。
Step3
自身のmasterブランチへ切り替えて、さきほどのブランチをマージして
githubへpush
ここでmasterブランチへマージせずに、作成したブランチでgithub側へpushした方が良いのかな?
トピックブランチ的に。
でもまぁ今回はgithubの案内に沿ってやってみました。
無事にgithubにpush完了。
本来ならば、masterの他にdevlopのブランチを作成してそれ以下ですべてやるのがいいのかもしれません。。たぶん。
さいごに
$ git branch -D ブランチ名
これでマージ用のブランチを削除しておわり。
続きを読むソーシャルコーディング
研究室のゼミで司会者を決めるときに時間がかかるので、ルーレットを作りました。
名前の入った配列を与えると、点数付きのハッシュにして返して1番ポイントの低い人が表示されるというものです。
Rubyでササッとつくったので、いろいろ問題があります。
(同じ点数の人の時とか)
そこでソーシャルコーディングの力を借りてどんどんより良いものにしていきたいです。
https://github.com/whitech0c0/LabRoulette
ここに公開しています。
どんどん Pull Request 送ってください。
お願いします。
というかgithubの複数人での開発フローをもっと体験してみたいです。
※Mac以外の環境の方はafplay, sayコマンドのところはコメントアウトお願いします。