気軽に楽しくプログラムと遊ぶスマートフォン用の表示で見る気軽に楽しくプログラムと遊ぶ自分が興味があってためになるかもって思う情報を提供しています。メタプログラミング本rubyのclass、moduleの違い。わかっていそうでわかっていない点をメタプログラミングの本を用いて理解していく。endend標準のStringクラスへメソッドを追加。標準のクラス書き換えていいんですか。普通の開発現場とかでもあり得る対応なのかなぁ。現場のコーディングルールとかRubyのベストプラクティスを読んでみたい。今回のメソッドは汎用的なメソッドのため、許容できる。Stringなどの重要なクラスは慎重に考える必要はある。3クラス定義時にputsが呼ばれている。3つ定義しているわけではなく、クラスの再オープンで定義している。あと、do〜end内にクラス定義!?Java屋さんとしてはでっかいクエスチョンマークがつきました。ブロック内での定義は特に縛りないのかな。メソッド定義して呼び出すのも試してみる。3特に問題ないみたい。ブロック内での処理記述はクラス内での記述と変わらないのかなオープンクラスの例Moneyオブジェクトに数値をMoneyオブジェクトへ変換するメソッドNumeric#to_money()がある。標準クラスNumericには元々ない。100.to_money()標準クラスNumericを再オープンして書き換えている。gemなどgemを取り込むとこのような書き換えが裏で発生したりしているんですね。[:@v]インスタンスメソッドとメソッド用語の違いを正しく理解する。以下のようなインストロペクション(オブジェクト自身の内容調査する)で確認できる。falseインスタンスメソッドというと、クラスが定義しているメソッドを呼び出しているという意味になるそうだ。:superclass]ほとんど同一のもの。ClassとModuleの使い分けClass:インスタンス生成、継承を行うModule:インスタンスメソッドを適用させたい場合、またはネームスペースとして用いる。TaskTaskクラスの名称は「Rake::Task」となる他のクラスにTaskクラスが存在しても衝突を起こすことがなくなる。Rake::としているのはクラス名Taskが定数だから。Rakeのような定数をまとめるだけのモジュールのことをネームスペースと呼ぶらしい。モジュールとメソッドの探索モジュールのインクルードを行うと、クラスとスーパークラスの間に無名クラスを作成し、継承関係が作成される。mainはトップレベルコンテキストと呼ばれる。下記は明示的なselfをつけているのでエラーとなる。削除すると動作するようになる。・スーパークラスから継承したprivateメソッドは継承先クラスで呼び出せる。・インスタンスメソッド内からしか呼び出せない。クラスには紐付かないメソッド。試験範囲を一気に見直すよく見られている記事プロフィールid:tamata78Ruby、Rails、Vim等の自分が興味があって役に立つかもっていう情報をまとめてます。(1)月別アーカイブはてなブログをはじめよう!tamata78さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。