このドロップでは、私たちが調べたすべてのトピックをもう一度調べて、失われた興味深いものを探してそれらを掘り下げます。
注意! これが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.inspectSTDOUTは、標準出力チャネルを示す標準グローバル定数です。
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 == 4if-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
ご覧のとおり、ハッシュ要素は順序付けられていないため、ハッシュはリストやキューなどには適していません。
文字列を引用符で囲んだい場所ならどこでも、
symbol使用を考えてください:
users = Hash.new
users[:nickname] = 'MaxElc'
users[:language] = 'Russian'
puts users[:nickname] #MaxElcエピローグ
Rubyでのさらなる開発に必要なもう1つの小さくて興味深いデータ。 コメントを歓迎します!