Ruby基礎文法の初歩的な探求

2356 ワード

文字列オブジェクトを作成するには、文字列の字面量(literals)、すなわち単一引用符または二重引用符のセットの間の文字シーケンスを使用する方法がいくつかあります.この2つの形式の違いは,文字列に対するRubyの処理が,文字面量を構成する場合に多少異なることである.Rubyは単一引用符列に対して処理が少ない.ごく一部の例外を除く.文字列の字面量に入力した内容がこの文字列の値を構成します.
Rubyは二重引用符文字列に対してより多くの処理を行う.まず、逆斜線で始まるシーケンスを探し、バイナリ値で置き換えます.その中で最も一般的なのは、リターン改行で置き換えられます.リターン改行を含む文字列が出力されると、改行が強制されます.

puts "And good night, 
Grandma"

出力結果:

And good night,

Grandma


Rubyが二重引用符文字列に対して行った2つ目のことは、文字列内の式内挿(expression interpolation)であり、{{式}シーケンスは「式」の値に置き換えられる.このようにして前の方法を書き換えることができます.

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      

@name = "Prudence"  #@name      

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」(@@)記号で開始します.最後に、クラス名、モジュール名、定数は大文字で開始する必要があります.
上記所定の初期文字の後から、名前はアルファベット、数字、下線の任意の組み合わせであってもよい(ただし、@記号の後に続く記号は数字ではない).しかし、慣例では、複数の単語を含むインスタンス変数名は、単語と単語の間に下線接続を使用し、複数の単語を含むクラス変数名は混合大文字(各単一のアルファベット大文字)を使用します.メソッド名は?、!と=文字で終わります.