インスタンスメソッドとクラスメソッドの違いに入門してみる その1
久しぶりです! 引き続き
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
をやっていきます。 今日からオブジェクト指向とクラスの話になるので、少し時間がかかりました。
特に自分の中でもクラスメソッドとインスタンスメソッドの使い分けがいまひとつで、そこを整理するためにブログに残しておきたいと思います。
- オブジェクト指向の入門
- オブジェクト指向のクラス
- Rubyのクラスについて
- initializeメソッド
- アクセサメソッド
- クラスメソッド
- クラスメソッドを使うか、インスタンスメソッドを使うか
- インスタンスメソッド実装の利点
- データを持つ主体
正規表現に入門してみる
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
プロを目指す人のためのRuby入門の続きをやっていきます。 今回は正規表現です。正直今まで正規表現はやったことがなかったので、本当に入門からやっていきます。
続きを読むハッシュやシンボルを理解する
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
今日も続きをやっていきます。 ハッシュやシンボルをやっていきます。Rubyのコードだとよく見るけどよく意味がわかっていないところです。 一つ一つ見ていきましょう。
続きを読む繰り返しや配列処理(mapやinjectメソッド)
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
さて、3日目やっていきましょう。今日は繰り返しや配列処理について学んでました。 ちなみにこの章は長いので2日に分かれています。
前回のエントリは下記リンクよりどうぞ
今回は、配列とかブロックとかをやっていきます。 mapメソッドなどよく見るけど実際どんな動きをするのかよくわかってなかったものについて深掘りしていきます。
続きを読むRubyテスト自動化とRspec入門
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
の3章をやっていきます。
今回のテーマは、テストの自動化です。RubyのMinitestを使ってどんどん自動化していきます。
ディレクトリ構造
続きを読む
プロを目指す人のためのRuby入門 1日目
こんばんは!
最近しっかりとRubyレベルから学び直したいと思い下記の書籍を購入しました。
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
著者の伊藤さんは、前々からqiitaでもTwitterでも知っていました。 解説が超わかりやすいなあと思い、本を買っても間違いないだろうと思い購入しました。
個人的にはRubyの本は「たのしいRuby」から2冊目です。 しかし、最近Rubyの書き方を忘れたりうまく読めなかったりしたので、本書を購入したに至ります。
今日から1章ずつ読んでいき、気になったところや、ここ忘れてたーと思うところをピックアップしていきたいと思います。 今日は2章の「Rubyの基礎を理解する」です。
文字列の比較
文字列が同じかどうか調べる場合は==を、異なる値かどうかを調べる場合は!=を使う。
‘ruby’ == ‘ruby’ #=> true
ちなみにrubyで使うのは、’ ‘でも” "でもどちらでも大丈夫
&&や||の戻り値と評価を終了するタイミング
例えば次の例を見てみる
1 && 2 && 3 #=> 3 1 && nil && 3 #=> nil nil | | false #=> false false | | nil #=> nil
Rubyは式全体が真または偽であることが決定するまで左辺から順に式を評価します。 ちなみに | | は「または」の意
似たような演算子にand、or、notがありますが、&& | | のほうが優先度が高くなります。
デフォルト値付きのメソッド
def greeting(country) if country == ‘japan’ ‘こんにちは’ else ‘hello’ end end # 引数が少ない greeting #=> ArgumentError: wrong number of argument(given 0, expected 1) # 引数が多い greeting (‘us’,’japan’) #=> ArgumentError: wrong number of argument(given 2, expected 1)
ただしRubyでは、メソッドの引数に先にデフォルトを入れておくことができる。
def メソッド名(引数1 = デフォルト値1, 引数2 = デフォルト値2) #処理 end def greeting (country = ‘japan’) if country == ‘japan’ ‘こんにちは’ else ‘hello’ end end greeting #=> “こんにちは” greeting (‘us’) #=> “hello”
特に最後のデフォルト値付きのメソッドは、オブジェクト指向であるRubyで大事な概念でしょう。 ここで紹介したのはほんの一部なので、気になる方はぜひ書籍を手にとってみてください!