ホームに戻る
Rubyのサンプル
# Rubyメモ
=begin
たのしいRuby第3版
=end
num = 1
str = "abc"
# Hello! World!
puts "Hello!World!"
print "Hello!Ruby!\n"
print "100".to_i, "\n"
# if 式
if num == 1 then
print "if num = ", num, "\n"
elsif num == 2 then
print "elsif num = ", num, "\n"
else
print "else num = ", num, "\n"
end
unless num == 1 then # if の逆
print "unless num = ", num, "\n"
else
print "unless else num = ", num, "\n"
end
# case 式
case num
when String
print "case String\n"
when Numeric
print "case Numeric\n"
else
print "case else\n"
end
# loop
while num < 5 do
num = num + 1
print "while num = ", num, "\n"
end
until num > 10 do
num = num + 1
if num == 7
next # 次のループへ
# redo # もう一度やる
# break # 終了する
end
print "until num = ", num, "\n"
end
3.times do
num = num + 1
print "times num = ", num, "\n"
end
for x in num + 1..num + 3 do
print "for num = ", x, "\n"
end
# 関数
def f(n = 1)
print "func n = ", n, "\n"
return n + 1 # return は省略できる
end
f()
f(3)
# リスト
name = ["abc", "def", 012]
print "array 0 = ", name[0], "\n"
print "array 2 = ", name[2], "\n"
print "array size = ", name.size, "\n"
name.each do |x|
print "array each = ", x, "\n"
end
# ハッシュ
table = {:a => "A", :b => "B", :c => "C"}
print :a.to_s, " = ", table[:a], "\n"
table.each do |key, value|
print "hash each = ", key, " = ", value, "\n"
end
# コマンド
print "ARGV = ", ARGV[0], "\n"
# ファイル
file = open("test.rb")
text = file.gets
print text
file.close
# 変数
X = 0 # 定数(先頭が大文字である)
x = 0 # 変数(先頭が小文字か _ である)
$x = 0 # グローバル変数
# クラス
class ClassA
A = 123
@@count = 0
def initialize(num = 100)
@n = num
end
def add_count
@@count = @@count + 1
end
private :add_count
def f
print "ClassA f ", @n, ":", @@count, "\n"
add_count()
end
public :f
end
a1 = ClassA.new
a2 = ClassA.new(200)
a1.f
a2.f
print "ClassA::A = ", ClassA::A, "\n"
class ClassB < ClassA
@@count = 0
def initialize(num = 300)
super(num)
end
def f
print "ClassB f ", @n, ":", @@count, "\n"
add_count()
end
public :f
end
b1 = ClassB.new
b1.f
print "ClassB::A = ", ClassB::A, "\n"