心はいつも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
「Follow me」バッジのつけ方。

ブログの横についている「Follow me」バッジ。いろんな方がつけているのを見 …

no image
Google Appsで問い合わせフォームを作りました

とっても簡単でした。Google Appsでこのブログに問い合わせフォームを設置 …

no image
Macで.htaccessを表示する設定

MacBook Air2代目。以前は行っていた.(ドット)がついたファイルをMa …

RailsTutorial4.0を高速で復習する。11章。

第11章ユーザーをフォローする、です。ようやく最終章。1週間でできるつもりが3週 …

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

8.1.3サインインのフォーム、です。 ログイン画面を作る 入力フォームをfor …

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

7.2ユーザー登録フォーム、です。 ユーザー認証も登録も、モデルは作ってあるので …

no image
Mac OS Xでftp × Cyberduck

WordPressにプラグインを入れたくてダウンロードしてきました。 そういえば …

no image
MacBookAir 1日め

ようやくMacBookAir を購入しました。Dellノートがずっと調子悪かった …

no image
Rails 3.2と4.0、複数バージョンをインストールする

Rubyを複数バージョン入れて切り替えて使える事を確認しました。次はRailsを …

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

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