Ruby
Rubyの便利な配列記法に%記法というものがあります。 通常の配列を記述する方法よりもシンプルに書くことができるので、コードの可読性がよかったりするので覚えておいて良さそうです。 %記法 %w 通常の配列記法はこちらになります。 > ary1 = ['tokyo', 'sa…
Rubyではメソッドから他のメソッドを呼び出すことができます。 さっそくみていきましょう。 メソッドからメソッドを呼び出す オブジェクトのメソッドの中から、同じオブジェクトの他のメソッドを呼び出す例を書いてみます。Userクラスを作成し、名前、メール…
Rubyでユーザークラスを作る場合、次のように書くことができます。 Rubyのゲッター・セッター class User def name=(name) @name = name end def name @name end end 1つめのメソッドは、引数で受け取ったデータをインスタンス変数@nameに代入します。インス…
Rubyのローカル変数とインスタンス変数には次の違いがあります。 ローカル変数:その場限りの一時的な変数。メソッド内で定義した場合、そのメソッドの中でのみ使える インスタンス変数:オブジェクトが保有する変数。オブジェクトのどのメソッド内からも利…
Rubyは「万物」がオブジェクトといわれるように、オブジェクトを理解することが重要なプログラミング言語です。irbではオブジェクトに自分が何者かを確認することができるので、その挙動をみていきましょう。 オブジェクトに何者(クラス)かを聞いてみる ir…
Rubyにはプログラムを柔軟に記述するためにモジュールというクラスに似た機能が用意されています。モジュールの特徴やクラスとの違い、使い方についてみていきます。 モジュールとは モジュールはクラスと同じように定数やメソッドをまとめたり、クラスに組…
Rubyの「Procクラス」について学んだことをまとめてみました。Procはブロックとして記述された一連の手続きを受け渡しするためのクラスです。 Procクラスとは Procを理解するにあたりポイントとなるのがブロックです。ブロックはdo ~ endまたは{ ~ }の形で引…
Rubyのyieldは機能の理解が難しいので整理したいと思います。英単語のyieldは「生み出す、引き起こす」などの意味がありますが、Rubyでは一言で言うと、「他のものに取って代わられる」機能です。 yieldの仕組み サンプルコードをみてみましょう。 def msg y…
Rubyのレシーバとは何でしょうか。 レシーバはselfなどで表され、Ruby以外のプログラミング言語にも共通して使われるオブジェクト指向一般の用語です。 Rubyのレシーバ Rubyのレシーバはインスタンスメソッドを利用するインスタンス自身のことを指します。 …
Rubyで正規表現を使えるようになると、文字列を簡単に操作できるようになります。文字列の置換や抽出はプログラミングでよく出てくる処理なのでしっかり押さえておきたいですね。 文字列の置換 例えば、次の文字列をカンマ区切りに変更してみましょう。 str …
Rubyのアルゴリズム練習がてらフィボナッチ数列を解いてみます。 フィボナッチ数列とは まず最初にフィボナッチ数列について触れます。 フィボナッチ数列は 1, 1, 2, 3, 5, 8, 13, 21 ,,, のように第n+2項が、 第n+1項と、第n項の和になるよう数列です。 事…
railsで開発をしていると、あるときからRuby系のコマンドを叩くたびに下記のメッセージが表示されるようになった。 Ignoring mysql2-0.4.6 because its extensions are not built. Try: gem pristine mysql2 --version 0.4.6 Ignoring mysql2-0.3.20 because…
Rubyのプログラミング問題でメソッド名を動的に変更する場合について触れたいと思います。 メソッド名を動的に変更する記述方法をメタプログラミングと言うのですが、Rubyではこの方法を持ちいいてメソッド名を動的に変えることが可能です。 例えば次のよう…