心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

Rubyの<< には3つの用法あり。

      2014/01/19


先週の#yokohamarbペアプロ画面をみていて <<でヒアドキュメント書くんだーと学んだ翌日、同じ方にRailsGirlsでチューターをしていただき、<<を配列への要素追加で書くことを習いました。同じ記号なのに用法違いすぎる。 たのるーによると、<<の用法は3つ。

  • 特異メソッド
  • 文字リテラル
  • メソッド

どれがどれやねん。

特異メソッド

クラス定義のときに使う。って書いてあるけど、<<使うと怒られる。<でいいと。 [code] class Aisatsu < Object def konichiwa puts "Hello,World" end end a = Aisatsu.new a.konichiwa [/code] [code] class Aisatsu class << self def konichiwa puts "Hello,World" end end end Aisatsu.konichiwa [/code] こっちはうまくいった。

文字リテラル

これがヒアドキュメントを作る場合。
長い文章を作るとき、

<< "文章終了の記号を勝ってに決めてここにかく" ながーい文章をここに好き勝手に書く さっき書いた終了の記号 [code] << "EndOfString" dfsjdfoiufjszfmnzjndsofsjiovjncvxmcdijds EndOfString [/code]

メソッド

メソッドも、Array,Date,Integer,IO,Stringの5つで使えるらしい。配列の要素追加はArrayメソッドですね。

arr = ["dog", "cat"]
arr << "banbi" 
p arr #=> ["dog", "cat", "banbi"]

配列の最後に要素が追加される。pushで書いても同じ。

arr = ["dog", "cat"]
arr.push "banbi" 
p arr #=> ["dog", "cat", "banbi"]

ちなみに>>で配列の前に追加できなかった。。前に追加するにはunshiftを使う。

arr = ["dog", "cat"]
arr.unshift "zonbi" 
p arr #=> ["zonbi","dog", "cat"]
【送料無料】初めてのRuby [ Yugui ]

【送料無料】初めてのRuby [ Yugui ]
価格:2,310円(税込、送料込)

【送料無料】たのしいRuby第4版 [ 高橋征義 ]

【送料無料】たのしいRuby第4版 [ 高橋征義 ]
価格:2,730円(税込、送料込)

 - テクニカル

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
もう一度、Future Vision

2019年の世界。あと7年。 登場人物に日本人がいない事にも注目してほしい。 関 …

no image
RubyとRailsのお作法

コーディングスタイルって結構気になります。 最初につとめた会社で、プログラミング …

no image
formatはどこから取ってくる?

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

HerokuにRailsアプリをdeployする

Railsプロジェクトというよりも、Railsアプリっていうほうが正んでしょうか …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習1問目。

5.6演習です。 一問目。 リスト5.28の静的ページのテストコードは簡潔ですが …

no image
iTunesをMacBookAirからWindowsに戻しました。

2月にMacBookAirを購入し、今までWindows上にあったiTunesを …

no image
RailsTutorial4.0を高速で復習する。11.2章。

11.2フォローしているユーザー用のWebインターフェイス、です。 モデルができ …

実機なしでRetina 3.5インチのスクリーンショットを撮る

iPhoneアプリ公開時に2種類の画像登録が必要です。 1つ目はアイコン。アプリ …

no image
サイドバーの幅を決めたい(Googleアドセンス編)

サーバー移転したままブログが放置状態になっています。 その間も検索エンジン経由で …

no image
retweetボタンを追加してみました

最近いろんなブログで見かけるretweetボタン。ブログのエントリーについている …