Rubyを始めてみたのでメモ
メソッド
各オブジェクトのメソッドが知りたいときはここから調べる。
http://www.ruby-doc.org/core-2.0/
■hashオブジェクトのメソッド例
.size : 配列の数が帰ってくる
.empty?["◯◯"] : 該当の配列にデータがあるかどうかが返ってくる
■Timeオブジェクトのメソッド例
.now
.strftime("%Y/%m/%d")
繰り返し
■表記方法は以下の3種類
10.times do |i|
puts "#{i}hi!"
end
for i in 1..10 do
puts i
end
i=1
while i<10 do
puts i
i = i+1
end
配列データのアウトプット
users = ["taguchi","fkoji","dotinstall"]
例えば上記の配列の場合、表記方法は以下の2種類。
for user in users do
puts user
end
users.each do |user|
puts user
end
ハッシュオブジェクトのアウトプット
scores = {"taguchi"=>200,"fkoji"=>300,"dot"=>120}
例えば上記データの場合、以下のように書けばOK。
scores.each do |name,score|
printf("%s's score is %d\n",name,score)
end
メソッドの定義
・メソッド名の定義はdef
・メソッド名は数字から始めるのはNG
こんな書き方
def sing(word = "la")
puts word + word + word + "~"
end
sing()
sing("hu")
こんな形でもOK。
def sing(word = "la", num)
s = ""
for i in 1..num do
s += word
end
s += "~"
return s
endres = sing("hu",10)
puts res
classの定義
・classの名前は大文字から
class Monster
def initialize(name)
@name = name
@hp = 100+rand(100)
printf("%s appeard. His hp is %d\n", @name, @hp)
end
def damage
@hp -= 10 + rand(10)
printf("%s's hp is now %d\n",@name, @hp)
printf("%s is now dead!\n", @name) if @hp < 0
end
endslime = Monster.new("slime")
i=0
while i < 10 do
slime.damage
i += 1
end