Download presentation
Presentation is loading. Please wait.
1
Ruby勉強会(第1回) 2006/06/29 竹内豪
2
Windows XPでRubyを使う 一番お気軽な方法 irbを使う
バイナリをダウンロードしてきて解凍 フォルダを適当な名前にリネームしてCドライブ直下に移動(例:rubyにリネームしてC:\rubyに移動) PATHを通す(PATH=ほげほげ;C:\ruby\bin;とか) irbを使う
3
Rubyはオブジェクト指向言語である #新しいオブジェクトの生成 song1 = Song.new(“Ruby Tuesday”)
song2 = Song.new(“Enveloped in Python”) #定数もオブジェクトとして扱う “gin joint”.length →9 “Rick”.index(“c”) →2 -1942.abs →1942 sam.play(aSong)→”duh dum, dum de dum …” Java → number = Math.abs(number) Ruby→ number = number.abs
4
Rubyの基本(1) #メソッドの作り方 def sayGoodnight(name)
result = “Goodnight, “ + name return result end #文の終わりにセミコロンはつかない puts sayGoodnight(“john-Boy”) puts sayGoodnight(“Mary-Ellen”)
5
Rubyの基本(2) #ここらへんはPerlとだいたい同じ #右から順に評価されたり、カッコ省略したり
puts sayGoodnight “John-Boy” puts sayGoodnight (“John-Boy”) puts(sayGoodnight “John-Boy”) puts(sayGoodnight(“John-Boy”)) puts “And Goodnight,\nGrandma”
6
Rubyの基本(3) #ダブルクオート内での変数の評価 def sayGoodnight(name)
result = “Goodnight, #{name}” return result end “Goodnight, #{name}”
7
Rubyの基本(4) 先頭文字について ローカル変数、メソッドの引数、メソッド名はすべて小文字またはアンダースコア(_)で始める
グローバル変数にはドル記号($)をつける クラス名、モジュール名、定数は先頭文字を大文字にする
8
配列とハッシュ(1) #undefじゃなくnil a = [1, ‘cat’, 3.14 ] a[0] → 1 a[2] → nil
a → [1, “cat”, nil] empty1 = [] empty2 = Array.new
9
配列とハッシュ(2) a = %w{ ant bee cat dog elk } a[0] → “ant” a[3] → “dog”
instSection = { ‘cello’ => ‘string’, ‘clarinet’ => ‘woodwind’, ‘drum’ => ‘percussion’, ‘oboe’ => ‘woodwind’, ‘trumpet’ => ‘brass’, ‘violin’ => ‘string’, }
10
配列とハッシュ(3) instSection[‘oboe’] → “woodwind”
instSection[‘cello’] → “string” instSection[‘bassoon’] → “nil” #未定義値のデフォルト設定 histogram = Hash.new(0) histogram[‘key1’] → 0 histogram[‘key1’] → historgram[‘key1’] + 1 histogram[‘key1’] → 1
11
制御構造(1) #ブロックはendで終わらせる If count > 10 puts “Try again”
elsif tries == 3 puts “You lose” else puts “Enter a number” end
12
制御構造(2) while weight < 100 and numPallets <= 30
pallet = nextPallets <= 30 weight += pallet.weight numPallets += 1 end if radation > 3000 puts “Danger, Will Robinson”
13
制御構造(3) puts “Danger, will Robinson” if radiation > 3000
while square < 1000 square = square*square end square = square*square while square < 1000
14
正規表現(1) #パッと見Perlと同じっぽい /Perl|Python/ /P(erl|ython)/ /\d\d:\d\d:\d\d/
/Perl\s+Python/ /Ruby (Perl|Python)/
15
正規表現(2) if line =~ /Perl|Python/
puts “Scripting language mentioned: #{line}” end #Stringクラスの置換メソッド(substitute) line.sub(/Perl/, ‘Ruby’) line.sub(/Python/, ‘Ruby’)
16
ブロックとイテレータ(1) #両方ともブロック {puts “Hello” } do club.enroll(person)
person.socialize end
17
ブロックとイテレータ(2) #このyieldというのがよくわからない^^; def callBlock yield end
callBlock { puts “In the block” } 実行結果 In the block
18
ブロックとイテレータ(3) def callBlock yield “hello”, 99 end
callBlock { |str, num| …} a = %w( ant bee cat dog elk ) a.each { |animal| puts animal}
19
ブロックとイテレータ(4) def each for each element yield(element) end
[ ‘cat’, ‘dog’, ‘horse’ ].each do |animal| print animal, “ – “
20
ブロックとイテレータ(5) #組み込みのイテレータ 5.times { print *** }
3.upto(6) {|i| print i } (‘a’..’e’).each {|char| print char }
21
読み書き(1) #おなじみprintf printf “Number: %5.2f, String: %s”, 1.23, “hello”
#1行キーボードから入力を読み込む line = gets print = line
22
読み書き(2) while gets if /Ruby/ print end
ARGF.each { |line| print line if line =~ /Ruby/ }
23
参考文献 達人プログラマーズガイド プログラミングRuby Rubyインストールガイド デビット・トーマス+アンドリュー・ハント 著
デビット・トーマス+アンドリュー・ハント 著 田和 勝 訳 まつもとゆきひろ 監修 ピアソン・エデュケーション Rubyインストールガイド
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.