Ruby構文入門書
では、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で識別子として使用できないキーワードは次のとおりです。
BEGIN
、END
、alias
、and
、begin
、break
、case
、[ X77X] 、def
、defined
、do
、else
、elsif
、end
、[X162X ] 、false
、for
、if
、in
、module
、next
、nil
、not
、or
、redo
、rescue
、retry
、return
、 [ X349X]、super
、then
、true
、undef
、unless
、until
、 [X440X ]、while
、yield
識別子と変数名
識別子と変数では大文字と小文字が区別され、文字、10進数、または_文字を含めることができます。 数字で始めてはいけません。 大文字で始まる識別子は定数です。
コメント
コメントには#を使用します。 ほとんどの場合、#は複数行のコメントにも使用されます。
# This is a comment # Comment on # multiple # lines
複数行のコメントは、次のように作成することもできます。
=begin Comment on multiple lines =end
データ型
文字列
Strings はRubyでもオブジェクトであり、次のようなことができます。
"Alligator".size
これを出力します:
=> 9
Rubyの文字列に使用できる便利なメソッドはトンあります。 ここに本当に便利なものがいくつかあります、それらのほとんどは自明です:
capitalize
、chars
、chomp
、chop
、chr
、count
、delete
、[ X77X] 、end_width?
、eql?
、include?
、index
、replace
、reverse
、[X162X ] 、strip
、swapcase
?で終わるメソッドに注意してください 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?
、collect
、compact
、concat
、count
、delete
、drop
、[ X77X] 、empty?
、eql?
、first
、include?
、index
、last
、[X162X ] 、pop
、push
、reverse
、shift
、shuffle
、slice
、sort
、unshift
ハッシュ
ハッシュは辞書のようなものです。 それらの中にあるすべてのオブジェクトにインデックスが付けられる代わりに、それらは任意のタイプのオブジェクトである可能性のある一意のキーに関連付けられます。
accused = { "who" => "You", "with_what" => "club" }
シンボルをハッシュキーとして使用するのが一般的な方法です。
accused = { :who => "You", :with_what => "club" }
記号をキーとしてのみ使用する場合は、次の簡潔な構文を使用できます。
accused = { who: "You", with_what: "club" }
繰り返しになりますが、ハッシュには多くの便利な方法があり、そのうちのいくつかを次に示します。
any?
、clear
、compare_by_identity
、default
、delete
、each
、each_key
、[ X77X] 、each_value
、empty?
、eql?
、fetch
、has_key?
、has_value?
、[X162X ] 、invert
、keep_if
、length
、shift
、size
記号
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