スライドショー

【3分でわかる】Ruby 文字列4つの初期化の方法まとめ

どうも!
インストラクターの馬場です!

Rubyの文字列の初期化って、いろいろな方法があるのはご存知ですか?

しかもそれぞれの方法に微妙な違いが現れるので、しっかり使い分けを理解しておかないと、思わぬバグの原因になったりもします。

そこで今回は、Rubyの文字列の初期化について、解説していきます!
それでは行ってみましょう!

文字列の初期化

文字列を使うためには初期化を行う必要があります。

文字列の初期化は主に五つの方法があります。

それぞれの方法の違いについて見ていきましょう!

String.new

インスタンスを作成するためのnewメソッドを使用して初期化する方法です。

string = String.new("ruby")
p string #=> "ruby"

あまり使用されない方法で、コーディングガイドなどでも、理由がない限り、使用しないようにとされていることが多いです。

""(ダブルクォート)

一番よく使用される初期化方法です。

string = "ruby"
p string #=> "ruby"

このように文字列にしたい文字を「"」で囲うことで、文字列として初期化することができます。
また「"」この文字は「ダブルクォート」「ダブルクォーテーション」と呼ばれるので覚えておきましょう。

''(シングルクォート)

上の初期化方法と似ており「'」で文字を囲うことで、文字列として初期化する方法です。

string = 'ruby'
p string #=> 'ruby'

ダブルクォートと同じく「'」この記号は「シングルクォート」「シングルクォーテーション」と呼ばれるので覚えておきましょう。
上のダブルクォートで定義する方法との違いは、式展開ができないということです。

式展開とは文字列の中で式を展開する方法の事で、#{}で式をくくることで展開を行うことができます。

%Q、%q

他の言語では見慣れない記法ですがRubyではこれでも初期化を行うことができます。
文字列内にシングルクォートやダブルクォートを使用したい時はこの初期化の方法を使用します。

string = %Q("ruby""python")
p string #=> "ruby""python"
string = %q('ruby''python')
p string #=> 'ruby''python'

このようにダブルクォートやシングルクォートを文字列に使用することができます。
%qと%Qの違いはシングルクォートで囲った文字列に相当するか、ダブルクォートで囲った文字列に相当するかです。

%Qではダブルクォートで囲った文字列に相当するので式展開を行うことができます。
しかし%qではシングルクォートで囲った文字列に相当するので、式展開を行うことはできません。

まとめ

今回は文字列の初期化について解説していきました。

文字列の初期化はいろいろな種類がありますが、基本は「"」と「'」の二種類で初期化されることがほとんどです。

その二種類は覚えつつ、しっかり使いわけを行えるように他の方法も覚えておくようにしましょう。

Rubyの文字列をしっかり理解したい方に

この記事は文字列を体系的に解説した3ステップで簡単! Rubyの文字列を 完全理解の一部となります。
文字列をさらに理解したい方はこちらを読んでどんどん理解を深めていくようにしましょう。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ババシュンスケ

ババシュンスケ

こんにちは!
今年大学を飛び出し、フリーランスエンジニアとして働いています、ババです!

エンジニアはしんどい仕事と思われていますが、実はそんなにしんどくなくて、お金ももらえて、社会のためになる素晴らしい仕事というのを伝えるために、侍で業務委託として働いています!!

フリーランスの日常やら書いているブログやってます=>http://www.babashun.net/

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説