..
Rubyのようなシンプルかつ強力な言語の大きな利点の一つは、同じ出力を印刷するか、同等の動作を生成するためにさまざまな構文要素を使用して、すなわち、異なる方法で同じ結果を達成する能力である。
この短い記事では、サイクルだけでなく、所望の結果に基づいて、簡単な例を提示する"1"と"10"の範囲内のすべての番号を印刷できる簡単なプログラムを作成することです。
次のようなソリューション:
1,2,3,4,5,6,7,8,9,10を置く非常に便利な、一見思えるが、私たちの範囲は、("1"と"100"の間に言って)はるかに大きい場合は、私たちが探していることが唯一の2つのパラメータを必要とするスクリプトです、もう一度と思うだろう:初期値最後の(最小値と最大値)そのブラケットの範囲を。
各 pemette我々はそれを構築するために引数として渡された終了値に達するまで増加させる初期値を作りたいのですが、我々は例を参照してください。
。I |は|(1 .. 10)各DO 置く 最後にそれは番目のパラメータ(この例では"10")が定める条件に設立されたものと等しい値に達するまで、そう毎(ごと)値の範囲に対応する図が印刷されます。
同じ結果が入力するコードの量を"保存"leggermaneteを使用して構文を変えることによって達成することができる。
(1 .. 10)、それぞれ。{| I | putsの私}
("{| I | putsのI}")の実行をマークつのパラメータに基づいて範囲のそれぞれに繰り返さvaolore戻り値は、文の実行によって返されます。
次のように代替は、ループの使用に基づいてすることができます。
のi(1 .. 10)のための 置く 最後に再び我々は、変数"i"は値"10"のサイクルを終了する条件を表す必要な10回の反復、中に増加していることのできる値の範囲を定義する 2サイクルのパラメータを渡された。
しかし、我々の選択肢が完了していない、コードのこのシンプルなラインを見てみましょう:
1.upto(10){| I | putsの私}
数値型を表すオブジェクトのメソッド件まで 、このメソッドの構文は、書き込み"x.upto(y)は"(I = X、X <"型に相当する実際には"のために"のそれに代わるものです。 = yは、私+ +){...}"。
今最後の例を見てみましょう:
*置く(1 .. 10)コードの提案の最後の行は、疑いなく、これまでに見たすべての人のが最も簡単です、記号"*"の簡単な使用方法は、ステートメント置くに頼らずに引数として渡された範囲内のすべての値を印刷することができます任意の周期または任意のメソッドの呼び出しを指定する必要がなくなります。