2019-01-01から1年間の記事一覧

%記法を使ってコードをシンプルに記述する

Rubyの便利な配列記法に%記法というものがあります。 通常の配列を記述する方法よりもシンプルに書くことができるので、コードの可読性がよかったりするので覚えておいて良さそうです。 %記法 %w 通常の配列記法はこちらになります。 > ary1 = ['tokyo', 'sa…

メソッドからメソッドを呼び出す方法

Rubyではメソッドから他のメソッドを呼び出すことができます。 さっそくみていきましょう。 メソッドからメソッドを呼び出す オブジェクトのメソッドの中から、同じオブジェクトの他のメソッドを呼び出す例を書いてみます。Userクラスを作成し、名前、メール…

attr_accessorを使いゲッター・セッターを簡単に定義

Rubyでユーザークラスを作る場合、次のように書くことができます。 Rubyのゲッター・セッター class User def name=(name) @name = name end def name @name end end 1つめのメソッドは、引数で受け取ったデータをインスタンス変数@nameに代入します。インス…

ローカル変数とインスタンス変数の違い

Rubyのローカル変数とインスタンス変数には次の違いがあります。 ローカル変数:その場限りの一時的な変数。メソッド内で定義した場合、そのメソッドの中でのみ使える インスタンス変数:オブジェクトが保有する変数。オブジェクトのどのメソッド内からも利…

irbでオブジェクトに何者(クラス)かを聞いてみる

Rubyは「万物」がオブジェクトといわれるように、オブジェクトを理解することが重要なプログラミング言語です。irbではオブジェクトに自分が何者かを確認することができるので、その挙動をみていきましょう。 オブジェクトに何者(クラス)かを聞いてみる ir…

Rubyのモジュールの特徴(クラスとの違いなど)

Rubyにはプログラムを柔軟に記述するためにモジュールというクラスに似た機能が用意されています。モジュールの特徴やクラスとの違い、使い方についてみていきます。 モジュールとは モジュールはクラスと同じように定数やメソッドをまとめたり、クラスに組…

Procクラスについて

Rubyの「Procクラス」について学んだことをまとめてみました。Procはブロックとして記述された一連の手続きを受け渡しするためのクラスです。 Procクラスとは Procを理解するにあたりポイントとなるのがブロックです。ブロックはdo ~ endまたは{ ~ }の形で引…

Rubyのyieldメソッドについて

Rubyのyieldは機能の理解が難しいので整理したいと思います。英単語のyieldは「生み出す、引き起こす」などの意味がありますが、Rubyでは一言で言うと、「他のものに取って代わられる」機能です。 yieldの仕組み サンプルコードをみてみましょう。 def msg y…

Rubyのレシーバとは

Rubyのレシーバとは何でしょうか。 レシーバはselfなどで表され、Ruby以外のプログラミング言語にも共通して使われるオブジェクト指向一般の用語です。 Rubyのレシーバ Rubyのレシーバはインスタンスメソッドを利用するインスタンス自身のことを指します。 …

Rubyで郵便番号判定を正規表現で行う

Rubyで郵便番号を正規表現で判定してみましょう。 判定パターン 郵便番号(String型)とみなす文字列のパターンは下記の2パターンとします。 "390-1401" (3桁-4桁記法) "3901401" (7桁記法) matchメソッドを使って出力される結果は次の通りです。 "郵便…

Rubyで正規表現を使い文字列を操作する(gsub・slice・match)

Rubyで正規表現を使えるようになると、文字列を簡単に操作できるようになります。文字列の置換や抽出はプログラミングでよく出てくる処理なのでしっかり押さえておきたいですね。 文字列の置換 例えば、次の文字列をカンマ区切りに変更してみましょう。 str …

Rubyでフィボナッチ数列を解く

Rubyのアルゴリズム練習がてらフィボナッチ数列を解いてみます。 フィボナッチ数列とは まず最初にフィボナッチ数列について触れます。 フィボナッチ数列は 1, 1, 2, 3, 5, 8, 13, 21 ,,, のように第n+2項が、 第n+1項と、第n項の和になるよう数列です。 事…

Ruby系コマンドでits extensions are not built.が表示されるときの対処法

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のプログラミング問題でメソッド名を動的に変更する場合について触れたいと思います。 メソッド名を動的に変更する記述方法をメタプログラミングと言うのですが、Rubyではこの方法を持ちいいてメソッド名を動的に変えることが可能です。 例えば次のよう…

チーム開発をうまく進めるために意識したい3つのこと

大手プログラミングスクールのフリーランスコースに半年ほど通い、はじめてチーム開発を経験したので、そこでの学びを共有できればと思います。「チーム開発をうまく進めるために意識したい3つのこと」、と題して3つのポイントに整理してお伝えします。自分…

WordPressで特定のカテゴリを一覧表示する方法

特定カテゴリを一覧で表示 WordPressで特定の記事を一覧で表示する方法についてご紹介します。 1つのカテゴリを一覧で取得する場合 オプションはcategoryを記述し、categoryのidを1つ指定して記述します。 <ul> 1, // カテゴリのIDを記入する 'order' => 'DESC'</ul>…

N+1問題とは?解決方法について

Ruby on Railsの学習を進めて行くと、N+1問題というSQLの問題に直面します。この問題はRuby on Railsに限った話ではないのですが、よく取り上げられるので詳しく見ていきたいと思います。 N+1問題とは何か N+1問題とは無駄に(必要よりも多く)SQLを実行させ…