Ruby構文入門書

提供:Dev Guides
移動先:案内検索

では、Ruby on Railsを使い始めたいのですが、Rubyの経験がまったくありませんか? それとも、Rubyで何かをコーディングしてから数か月後に、復習が必要ですか?

この投稿では、Ruby 最小実行可能構文を提供しているので、作業を開始できます。

ルビー

Rubyは動的なオブジェクト指向プログラミング言語です(すべてがRubyのオブジェクトです)。 まつもとゆきひろが90年代半ばに作成しました。 Ruby on RailsがWebアプリケーションを構築するためのブロックで人気のある子供になり始めたとき、それは指数関数的に人気が高まりました。

Rubyは、生産性とプログラマーの楽しみに重点を置いています。 言い換えれば、それはお尻の痛みが少ないことに焦点を当てています。

Rubyのインストール

MacまたはLinuxを使用している場合は、Rubyのバージョンがすでにインストールされている可能性があります。 ただし、この記事の執筆時点では、最新バージョンではない可能性があります。

最新バージョンをインストールするには、最も一般的な方法は RVM(Rubyバージョンマネージャー)を使用することです。

ターミナルからRVMをインストールし、次にRubyとRailsをターミナルからインストールする方法は次のとおりです。

$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable --ryby --rails

いくつかのコードを実行する

マシンにRubyをインストールすると、irb(インタラクティブRuby)を使用してコードを試して実行するのが簡単になります。 ターミナルにirbと入力するだけで、irb(main):001:0>のようなプロンプトが表示され、そこからRubyコードを実行できるようになります。

一般的な構文に関するいくつかの単語

Rubyの各行の終わりにセミコロンはなく、すべての新しい式を独自の行で開始するだけです。 行末の\文字を使用して、複数行で長い式を続けることができます。 インデントは必須ではありませんが、読みやすさと保守性のために2スペースのインデントが一般的に使用されます。

Rubyファイルの拡張子は.rbで、Rubyで画面に何かを印刷する方法は次のとおりです。

puts "Hello, Alligator!"

または、出力に改行を追加しないという点でputsとは異なるprintコマンドを使用します。

print "Hello, Alligator!"

予約キーワード

Rubyで識別子として使用できないキーワードは次のとおりです。

BEGINENDaliasandbeginbreakcase、[ X77X] 、defdefineddoelseelsifend、[X162X ] 、falseforifinmodulenextnilnotorredorescueretryreturn、 [ X349X]、superthentrueundefunlessuntil、 [X440X ]、whileyield

識別子と変数名

識別子と変数では大文字と小文字が区別され、文字、10進数、または_文字を含めることができます。 数字で始めてはいけません。 大文字で始まる識別子は定数です。

コメント

コメントには#を使用します。 ほとんどの場合、#は複数行のコメントにも使用されます。

# This is a comment

# Comment on
# multiple
# lines

複数行のコメントは、次のように作成することもできます。

=begin
Comment on
multiple
lines
=end

データ型

文字列

Strings はRubyでもオブジェクトであり、次のようなことができます。

"Alligator".size

これを出力します:

=> 9

Rubyの文字列に使用できる便利なメソッドトンあります。 ここに本当に便利なものがいくつかあります、それらのほとんどは自明です:

capitalizecharschompchopchrcountdelete、[ X77X] 、end_width?eql?include?indexreplacereverse、[X162X ] 、stripswapcase

?で終わるメソッドに注意してください Rubyでは、メソッド名がtrueまたはfalseを返すときに、メソッド名を疑問符で終了するのが一般的です。

整数

ここではすべてのRubyデータ型について説明するわけではありませんが、整数は、Rubyのすべてがオブジェクトである量を示すもう1つの良い例です。 たとえば、次のような整数でメソッドを呼び出すことができます。

666.odd?

666は偶数であるため、これはfalseを返します。

配列

他の多くの言語と同様に、Ruby配列はオブジェクトのインデックス付きコレクションです。 同じ配列でさまざまなタイプのオブジェクトを使用できます。 インデックスはゼロベースです。これは、配列の最初のものが位置0にあることを意味します。 配列内の3番目のオブジェクトを探している場合は、インデックス2を使用します。

配列を宣言する2つの有効な方法は次のとおりです。

my_array = ["Something", "very", "boring"]

# And this is equivalent:
my_array = Array.new(["Something", "very", "boring"])

配列にもいくつかの非常に便利なメソッドがあり、ここにいくつかあります。

any?collectcompactconcatcountdeletedrop、[ X77X] 、empty?eql?firstinclude?indexlast、[X162X ] 、poppushreverseshiftshuffleslicesortunshift

ハッシュ

ハッシュは辞書のようなものです。 それらの中にあるすべてのオブジェクトにインデックスが付けられる代わりに、それらは任意のタイプのオブジェクトである可能性のある一意のキーに関連付けられます。

accused = { "who" => "You", "with_what" => "club" }

シンボルをハッシュキーとして使用するのが一般的な方法です。

accused = { :who => "You", :with_what => "club" }

記号をキーとしてのみ使用する場合は、次の簡潔な構文を使用できます。

accused = { who: "You", with_what: "club" }

繰り返しになりますが、ハッシュには多くの便利な方法があり、そのうちのいくつかを次に示します。

any?clearcompare_by_identitydefaultdeleteeacheach_key、[ X77X] 、each_valueempty?eql?fetchhas_key?has_value?、[X162X ] 、invertkeep_iflengthshiftsize

記号

Rubyのシンボルは少し奇妙な子です。 それらは:文字で始まり、RubyまたはRailsプロジェクトで頻繁に見られます。 それらは文字列に似ていますが、不変です。 それらは、最初に作成された後は、プログラムの実行中に変更することはできません。 これにより、アクセスと処理が高速化され、たとえば、シンボルがハッシュのキーとして理想的になります。

条件文

もし…elsif…else

Rubyには、条件文を構造化するための興味深い方法がいくつかあります。 従来のifステートメントは次のとおりです。

sammy = "the shark"
if sammy.length > 10
  puts "Not quite"
elseif sammy.length === 9
  puts "I think we have a winner"
else
  puts "Getting cold"
end

ここでキーワードelsifに注意してください。elseifやelseif、elsifではありません。 単純なifステートメントを使用すると、次のように1行で構造化できます。

puts "Yes" if sammy.length === 9

ステートメントがない限り

次のunlessステートメントを使用して、逆ロジックを適用できます。

letters = ["A", "l", "l"]
unless letters[1] === "l"
  puts "This won't print"
end

上記の例では、条件がtrueと評価されるため、条件の本体は実行されません。 ステートメントがifnot ロジックを使用するよりも直感的であることが多い場合を除いて、ステートメントは自然言語に近いものです。

ワンライナー構文を使用した別の例を次に示します。

puts "Ok" unless letters.length > 3

ケースステートメント

条件文を構成するさらに別の方法は、case文です。 それらは、そうでなければ非常に複雑なifステートメントに役立ちます。

moon_to_earth = 238900
case
when moon_to_earth < 200000
  puts "Not quite back home"
when moon_to_earth < 250000
  puts "Went too far"
when moon_to_earth === 238900
  puts "Spot on!"
else
  puts "Off the track again"
end

または、評価している変数を使用してcaseステートメントを開始することもできます。 ここで、あらゆる種類のステートメントを使用して評価する方法に注目してください。

moon_to_earth = 238900
case moon_to_earth
when 1..200000
  puts "Not quite back home"
when String
  puts "We're looking for an integer"
when 238900
  puts "Spot on!"
else
  puts "Off the track again"
end