Ruby体験記11 〜特殊変数、Array#each、String#each_char、条件式2、ライブラリの作成
どうも。三十路です。
本日も2巻。
![Ruby 2 さまざまなデータとアルゴリズム (CD-ROM付) (プログラミング学習シリーズ) Ruby 2 さまざまなデータとアルゴリズム (CD-ROM付) (プログラミング学習シリーズ)](https://images-fe.ssl-images-amazon.com/images/I/51FBIkFfhbL._SL160_.jpg)
Ruby 2 さまざまなデータとアルゴリズム (CD-ROM付) (プログラミング学習シリーズ)
- 作者: arton,宇野るいも
- 出版社/メーカー: 翔泳社
- 発売日: 2009/02/13
- メディア: 大型本
- 購入: 1人 クリック: 48回
- この商品を含むブログ (21件) を見る
特殊変数
Rubyでは共通で利用するオブジェクトを既定の特殊変数として参照可能にしている。
変数名 | 内容 |
---|---|
$0 | 現在実行中のRubyプログラムのファイル名 |
$: | require関数やload関数がライブラリをロードするために参照するフォルダ名の配列 |
$DEBUG | デバッグモードならtrueが設定される変数。Rubyをデバッグモードで実行するには-dを指定する |
$stdin | 標準入力。既定ではコンソール入力が割り当てられる |
$stdout | 標準出力。既定ではコンソール出力が割り当てられる |
$stderr | 標準エラー出力。既定ではコンソール出力が割り当てられる |
$* | Rubyプログラムに与えられた引数を格納した配列 |
Array#each
Array#eachメソッドとはブロック引数をとり、ブロック変数として配列内の要素を順番に与えて処理できる。
例)
array = "日,月,火,水,木,金,土".split(",") array.each do |str| puts "#{str}" end
上記をfor文で
array = "日,月,火,水,木,金,土".split(",") for i in 0..array.size-1 puts "#{array[i]}" end
またインデックス値を1つずつ増やしたり、1つずつ減らしたりするのには、Integer#uptoやInteger#downtoのが処理が見やすくなるかもしれない。
String#each_char
先頭から末尾まで順に1文字ずつブロック変数に設定して、ブロック引数を呼び出す。
str= "日月火水木金土" str.each_char do |s| puts "#{s}" end
条件式2
条件が成り立たなければ処理するという条件分岐式がある。
以下2つは同じ意味である。
if !条件式
unless 条件式
ライブラリの作成
いままでどおりにプログラムを組むだけでそれをライブラリとして利用できる。その際にいくつか注意点。
ファイル名は全て小文字。またクラス名や関数名に「_」を利用している場合はファイル名には「-」を付ける。
そんな日。