Rubyの基本構文
文字列オブジェクトを作成する方法はいくつかありますが、おそらく最も一般的なのは文字列リテラルを使用する方法でしょう。この2つの形式の違いは、Rubyではリテラルを作成する際に文字列をどの程度扱うかが異なるということです。ごくまれな例外はありますが。文字列リテラルに入力された内容は、その文字列の値を構成します。
二重引用符で囲まれた文字列は、Rubyではもう少し扱いやすくなっています。まず、バックスラッシュで始まるシーケンスを探し、2値で置き換えます。このうち最も一般的なのは「◎」で、これは復帰改行で置き換えられます。キャリッジリターン改行を含む文字列が出力された場合、" \n" は強制的に改行されます。
puts "And good night, \nGrandma"
出力結果です。
And good night,
Grandma
Rubyが二重引用符で囲まれた文字列に対して行う第二のことは、文字列内の式の補間で、#{expression}の列を"expression"の値で置き換えることです。この方法で前のメソッドを上書きすることができます。
def say_goodnight(name)
result = "Good night,#{name}"
return result
end
puts say_goodnight('Pa')
出力結果です。
Good night, Pa
Rubyがこの文字列オブジェクトを構築するとき、nameの現在の値を見つけて、文字列の中で置き換えます。構造体#{...}の中には、任意に複雑な式を入れることができます。すべての文字列に定義されているcapitalizeメソッドはここで呼ばれ、引数の最初の文字を大文字に変えて出力されます。
def say_goodnight(name)
result = "Good night,#{name.capitalize}"
return result
end
puts say_goodnight('uncle')
出力結果です。
Good night, Uncle
便宜上、式がグローバルなインスタンス変数やクラス変数だけであれば、括弧を用意する必要はありません。
$greeting = "Hello" #$greeting is a global variable
@name = "Prudence" #@name is an instance variable
puts "#$greeting,#@name"
出力結果です。
Hello,Prudence
Rubyのメソッドが返す値は、最後に評価された式の値なので、この一時変数とreturn文は両方とも削除することができます。
def say_goodnight(name)
"Good night,#{name}"
end
puts say_goodnight('Ma')
出力結果です。
Good night, Ma
Rubyでは、名前が何に使われるかを区別するために命名規則があります。名前の最初の文字が、その名前がどのように使われるかを示します。ローカル変数、メソッドパラメータ、メソッド名はすべて小文字かアンダースコアで始まらなければなりません。グローバル変数はドル記号 ($) で始まり、インスタンス変数は "at" (@) 記号で始まります。クラス変数は、2つの "at" (@@) 記号で始まります。最後に、クラス名、モジュール名、定数はすべて大文字で始めなければなりません。
上記で指定された最初の文字以降には、文字、数字、アンダースコアを自由に組み合わせることができます(ただし、@の後に続く記号は数字にできません)。ただし、慣例として、複数の単語を含むインスタンス変数名は単語間をアンダースコアでつなぎ、複数の単語を含むクラス変数名は大文字小文字の混在(それぞれ頭文字を1つずつ大文字に)となっています。メソッド名には? と!、=の文字で終わります。
関連
-
Ruby Hash ハッシュ型 基本操作のメソッド一覧 まとめ
-
Rubyのシングルトンメソッドとシングルトンクラス
-
Rubyのgemパッケージ管理およびgemソース構築のチュートリアル
-
RubyおよびRuby on RailsでJSON形式のデータをパースするためのチュートリアルの例
-
RubyでXMLデータ処理ライブラリREXMLを使うための手引き
-
Ruby は REXML ライブラリを使って xml 形式のデータをパースする
-
RubyがWeb画像クローリングを実装
-
Rubyのデザインパターン開発におけるobserverパターンの一例
-
Ruby on Railsのルーティング設定に関するいくつかのアドバイス
-
Rubyメタプログラミングの注目すべき点
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
バブルソートアルゴリズムの簡易実装とRuby版
-
Rubyのブロック機能をより深く理解するために
-
Rubyオブジェクト指向の知識まとめ
-
Rubyブロックチュートリアル
-
RubyGnome2 ライブラリを用いた GTK 環境での Ruby GUI プログラミングの基本的な考え方
-
Ruby on Railsのパフォーマンスを最適化するためのいくつかの方法についての考察
-
Ruby on Railsのjquery_ujsコンポーネントが遅くなる問題が解決された
-
Ruby on RailsのActiveResourceの使い方解説
-
Rubyでの例外処理コードの記述例
-
Rubyプログラミングにおけるアサインメント関連操作