Ruby – 配列

1月 1, 2003 · Posted in Ruby · Comment 

配列の利用

Rubyの配列は、Arrayクラス(http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Array)を利用しているが、それを知らなくても利用できるように配慮されている。
たとえば配列の宣言には、

test = []

とするが、これはArrayクラスのクラスメソッド[]を利用している(Array.[])。一見すると、言語仕様に組み込まれているように見える。
※すごいセンスだなぁ。

宣言

Arrayのクラスメソッド[]を利用する方法。

names = []
tests = ["hello"]
loop = ["11111", "22222"]

Arrayのクラスメソッドnewを利用する方法。

new = Array.new()

参照・代入

参照・代入にはArrayクラスのメソッド[]を利用する。

参照例

p tests[0]
p tests[999]

代入例

tests[0] = "xyz"
tests[999] = 999

宣言されていない配列に値を代入しようとするとエラーが発生するので注意。

ages[2] = 999 #->エラー

配列のループ

昔っぽく

for i in 0 .. loop.size - 1
    p loop[i]
end

eachループ(便利!)

loop.each do |number|
    p number
end

Ruby – 制御構造:条件分岐

1月 1, 2003 · Posted in Ruby · Comment 

制御構造:条件分岐

if

if 式 [then]
    式
elsif 式 [then]
    式
else
    式
end

elseif,elseは省略可能

if修飾子

式 if 条件式

p _name if $DEBUG

$DEBUGがtrueの場合に、左側のp _nameが実行される。

unless

ifの逆

unless 式 [then]
    式
else
    式
end

unless修飾子

if修飾子の逆

p _name unless $STATUS

case

case 式
when 条件式
    式
when 条件式
    式
e lse
    式
end

Ruby – クラス変数

1月 1, 2003 · Posted in Ruby · Comment 

クラス変数

変数名の先頭に@@をつけると、その変数はクラス変数として扱われる。クラス変数は特定のクラスに属していて、クラスの得意メソッドや、そのクラスから生成されたインスタンスから参照することができる。

インスタンスをいくつ生成しても、クラス変数はひとつだけとなり、個々のインスタンスから共有される。

@@name = "his_name"

サンプルコード

sample.rb

class Sample
  @@sex = "man"
  def printSex
    print @@sex, "\n"
  end
  def setSex(sex)
    @@sex = sex
  end
end

sample = Sample.new
sample.printSex()
sample.setSex("woman")

sample2 = Sample.new
sample2.printSex()

結果

man
woman

sample, sample2が参照しているインスタンスは、互いに同じクラスから生成されている。よって、sample, sample2共に、変数@@sexは共有されることになる。
上記の例ではsampleとsample2が参照している@@sexが同じであることを示している。

次ページへ »