LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について14

p "100"
p 100

文字列と数値を違った形で表示してくれる


例:

puts "Hello,\n\tRuby."
p "Hello, \n\tRuby."


出力

Hello,Ruby.
"Hello, \n\tRuby."



ファイルの読み込み

require "使いたいライブラリのファイル名"


<hello.rb>

def hello
   print  "Hello, Ruby.\n"
end

<use_hello.rb>

require "./hello"  
hello()

出力

Hello, Ruby.


シンボル

文字列に似たオブジェクトで、Rubyメソッドなどの名前の識別に使うラベル

sym = :foo
sym2 = :"foo"


ファイルからテキストデータを読み込んで表示


①ファイルを開く
②ファイルのテキストデータを読み込む
③読み込んだテキストデータを出力する
④ファイルを閉じる

read_text.rb
filename =ARGV[0]
file = open(filename)
text =file.read
print text
file.close

ファイルからテキストデータを1行ずつ読み込んで表示

filename = ARGV[0]
file = open(filename)
while text = file.gets
print text
end
file.close


データが読み込めたら 真
読み込めなくなったら 偽


例外処理


begin
例外を発生させる可能性のある処理
rescue
例外が起こった場合の処理
end


例外発生時に自動的にセットされる変数とメソッド

変数
$! $@

メソッド
class
message
backtrace


例:

def foo
  open("/no/file")
end


def bar 
  foo()
end


begin
  bar()
rescue  =>  ex
  print ex.message,   "\n"
end

後処理


begin
例外を発生させる可能性のある処理
rescue = > 変数
 例外が起こった場合の処理
ensure
 例外の有無にかかわらず実行される処理
end


例:

def  copy(form,to)
  src = open(from)
begin
  dst =  open(to, "w")
data = src.read
dst.write(data)
dst.close
ensure
src.close
end
end

やりなおし

file = ARGV
begin
io = open(file)
rescue
sleep 10
retry
end

data = io.read
io.close

rescue修飾子

式1 rescue 式2

begin
式1
rescue
式2
end

例外クラス


MyError = Class.new(StandardError)