注意! これがRubyブログに投稿された最後のストローです! 過去(1、2、3、4、5、6)はすべて、既に新しいStartup Programmerブログに載っています 。 このブログは、初心者や、場合によっては最初から段階的に学習したい、または価値のあるプログラミング言語を習得したいと思っている「シーズンのある」プログラマーを対象としています。 ドロップの追跡がさらに簡単になりました!
入力と検査
puts "What is your name?"
STDOUT.flush
chompname = gets.chomp
puts "Again, what is your name?"
name = gets
puts "Hello, " + name
puts "Hi, " + chompname
puts 'But name = ' + name.inspect + ' and chompname = ' + chompname.inspect
STDOUT
は、標準出力チャネルを示す標準グローバル定数です。
flush
メソッドは、Rubyの内部I / Oバッファー内のすべてのデータをフラッシュします。 このコード行の使用はオプションですが、推奨されています。 すべての定数は大文字で始める必要があることに注意してください。
gets
は、1行の入力を受け取り、それを変数に渡します。
chomp
は
String
クラスのメソッドです。 同じ結果が得られるという事実にもかかわらず、
gets
は文字列と
\n
返すことを覚えておく必要
gets
ますが、
chomp
はこの
\n
削除します(メソッドはキャリッジリターン
\r
と
\r\n
組み合わせも削除します)。
これは、
inspect
メソッドを使用して簡単に実証できます
inspect
メソッドの役割は、変数、クラス、一般的にはRubyオブジェクトを「調べる」ことです。
メソッドの句読点
メソッドの最後にある感嘆符は、結果を返すだけでなく、適用先のオブジェクトも変更することを意味します(これはいわゆる「危険な」メソッドです)。
strip
メソッドは、行末のスペースを削除します。
string = 'Bring, bring ' a = string.strip! puts string puts a
疑問符メソッド、いわゆる述語は
true
または
false
のみを返し
false
。たとえば、配列メソッドは
empty?
配列に要素がない場合はtrueを返します。
a = []
puts "empty" if a.empty?
方法はあり
any?
逆に、要素が配列に存在する場合は
true
を返し、
nonzero?
を返し
true
か
nonzero?
Numeric
クラスで定義された
Numeric
は、呼び出された
Numeric
が
nil
場合は
nil
を返し、それ以外の場合はこの数値を返します。
Use%w
単語の配列を作成するのは大きな頭痛の種になることもありますが、Rubyではこれを単純化しています:
%w{}
は必要なことを行います:
pets1 = [ 'cat', 'dog', 'snake', 'hamster', 'rat' ]
pets2 = %w{ cat dog snake hamster rat } # pets1 = pets2
条件分岐
条件式を使用すると、コード実行の方向を制御できると既に述べました。 これらの表現を繰り返し、新しい表現を学びます。
もし
a = 7 if a == 4 a = 9 end
しかし、Rubyがタスクを単純化していなければ、RubyはRubyになっていなかったでしょう。 完全に類似したサイクル:
a = 7
a = 9 if a == 4
if-elsif-else
条件の例:
a = 7 if a == 4 a = 9 else if a == 7 a = 10 end end
elsif
は、この条件を可能な限り単純化し、以下を取得します。
a = 7 if a == 4 a = 9 elsif a == 7 a = 10 end
トリプル演算子
a = 7
plus_minus = '+'
print "#{a} #{plus_minus} 2 = " + (plus_minus == '+' ? (a+2).to_s : (a-2).to_s)
デザイン
[? (expr) : (expr)]
[? (expr) : (expr)]
は三項演算子(Rubyで唯一のトリプル)と呼ばれ、式を計算して結果を返します。 このようなコードは読みにくいため、2次タスクにのみ使用することをお勧めします。 最初のオペランドは前にカウントされ
?
値が
false
ではなく
nil
でない場合、2番目のオペランドの値は式の値になり、そうでない場合は3番目(
:
後)になり
:
。
ながら
while
、Rubyの構文は、他のPLの
if
および
while
と似てい
if
。
a = 0 while a < 5 puts a.to_s a += 1 end
いつものように、ループは1行に配置できます:
<......> while <>
記号
コードでは、
Symbol
は変数名のように見えます。たとえば、::アクションで始まります。
Symbol
は、Rubyで作成できる最も単純なオブジェクトです。名前と
ID
のみがあり
ID
。 シンボルは文字列よりも効率的で生産的です-シンボルの名前はプログラム全体で1つのオブジェクトを指し、同じ内容の2行は異なるオブジェクトです-これにより時間とメモリが節約されます。
ruby_know = :yes if ruby_know == :yes puts "You're a good guy!" else puts 'Learn Ruby!' end
この例では、
:yes
-
symbol
、値またはオブジェクトを含まず、代わりにコードの定数名として使用されます。 冷静に置き換えることができ
:yes
を文字列
"yes"
と、結果は同じになりますが、プログラムの生産性は低下します。 Kaneのすばらしい記事「文字と文字列の違い」でトピックの詳細を学ぶことができます。
連想配列
連想配列(以降、ハッシュ)は、オブジェクトの順序付けられたセットも含むため、配列に似ています。 ただし、配列では、オブジェクトは数字でインデックス付けされ、ハッシュでは、インデックスは任意のオブジェクトにできます。 簡単な例:
h = {'dog' => 'sobaka', 'cat' => 'koshka', 'donkey' => 'oslik'} puts h.length # 3 puts h['dog'] # 'sobaka' puts h # catkoshkadonkeyoslikdogsobaka
ご覧のとおり、ハッシュ要素は順序付けられていないため、ハッシュはリストやキューなどには適していません。
文字列を引用符で囲んだい場所ならどこでも、
symbol
使用を考えてください:
users = Hash.new
users[:nickname] = 'MaxElc'
users[:language] = 'Russian'
puts users[:nickname] #MaxElc
エピローグ
Rubyでのさらなる開発に必要なもう1つの小さくて興味深いデータ。 コメントを歓迎します!