array.sortと一行(一メソッド)で終わりです. 中でどんなアルゴリズムが使われているかはボラックボックスですが, 整列アルゴリズムを開発する仕事に従事している訳でなければ, 大した問題ではありません. また実際は C 言語で実装されているので整列だけなら C 言語で作成されたコードに引けを取らず高速です. もし, Perl ならば
sort @array;こんな感じになります. 「なんだ Ruby と命令の並び順が逆なだけでは?」と思うかもしれませんが, ここにオブジェクト指向でないプログラミングスタイルが如実に現れています. 詳しくは後述しますが, これは Perl が
array.sort()と sort メソッドが用意されており, オブジェクト指向プログラミングのスタイルになっていますが, ソートしたもの自体をオブジェクトとして扱っていないのでソートしたものを逆順にソートし直す場合は
array.sort() array.reverse()と2回命令を記述する必要があります. ところが, Ruby はソートしたもの自体もオブジェクトとして扱っているので
array.sort.reverseと書くことができます. つまり, Ruby では「array.sort」自体を新しく一つの配列オブジェクトして見なしている訳です. 配列をソートしたものもきっと配列だろう, というユーザーの期待通りの動作をしてくれます. どれも大した違いではないかもしれませんが, この期待したところで期待したオブジェクトとして振る舞ってくれることがプログラミング作業を効率化させてくれます. (配列やソートの概念がわからない人には「?_?」な感じかもしれませんが, 上記のような違いとそれがもたらす効果はのちのち理解できるようになると思います)
ちょこっと前置き ※ところどころで, これは最低知っておいたほうがいいんじゃないか, ということを「予備知識」という形でまとめておこうと思います. ※Rubyには直接関係ないかもしれませんが, 案外知らない人も多いのではないか, という気持ちから. ※そんなのあたりきしゃりきのとんとんちきだぜ!!屁のツッパリはいらんですょ!?という方はサクッと?すっ飛ばしていただきたい. |
ちょこっと前置き ※ここでは, 環境設定やインストールに関しての説明はしません. 文法と Ruby のお作法?Tips?中心に解説していきます. ※想定する環境としては, Rubyインタープリタがインストールされていて, コマンドライン上で Ruby スクリプトファイルを呼び出して実行できる, ような環境を想定しています. ※OSや開発環境に依存するような部分の説明はしません. ※最近の Linux, Mac であれば, 初めから Ruby インタープリタはインストールされているだろうし, Windows でもインストールはサクッとできるはず. ※MacOSX を含む UNIX 系 OS であれば,ターミナルから実行、WindowsであればDOSプロンプトから実行することを想定して記事を書いていきます。 |
print "Hello, World\n"
|
ruby ファイル名
|
|
変数の種類 | ルール | 説明 |
---|---|---|
グローバル変数 | $で始まる | プログラム全体で有効な変数 |
ローカル変数 | 小文字で始まる | メソッド内やブロック内で有効な変数 |
定数 | 大文字で始まる | 一度値を定義(代入)すると変更できない |
インスタンス変数 | @で始まる | オブジェクト(インスタンス)固有の変数 |
クラス変数 | @@で始まる | クラス固有の変数 |
演算 | 演算子 | 説明 |
---|---|---|
代入演算 | = | 変数に値を代入する |
四則演算 | +,-,*,/ | 足し算,引き算,掛け算,割り算 |
比較演算 | ==,!=,<,<=,>,>= | 値を比較する |
論理演算 | &&,||,and,or,!,not | 論理演算 |
a | b | 論理積(&&) | 論理和(||) |
---|---|---|---|
true | true | true | true |
true | false | false | true |
false | true | false | true |
false | false | false | false |
|
|
|
|
|
while line=gets print line end |
for文 配列から要素を一つ一つ取り出して処理する
|
100 200 skip 300 quit 400 |
メソッド定義
|