第1部「一時間で覚えるruby」

18
第第第第第第 Ruby 第第第第第第 第第第第第第第第 Ruby on Rails

Upload: hiromu-shioya

Post on 14-Dec-2014

2.636 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 第1部「一時間で覚えるruby」

第1部「一時間で覚える

Ruby 」第1回社内勉強会

「あわててはじめる Ruby on Rails 」

Page 2: 第1部「一時間で覚えるruby」

Ruby とはスクリプト言語

インタプリタとして動作するオブジェクト指向

数値、文字列などすべてがオブジェクト "string".length

=> 6

まつもとゆきひろ (matz)が開発 数少ない世界的に使われる国産プログラミング言語

Page 3: 第1部「一時間で覚えるruby」

今日の目標 Ruby関係のドキュメントを読めるようになる 「初めての Ruby」 リファレンスマニュアル

Rubyの雰囲気をつかむ PHPとの違いを感じる

PHPは怖い言語です

Page 4: 第1部「一時間で覚えるruby」

環境の準備 ●InstantRailsWiki: Instant Rails

http://instantrails.rubyforge.org/wiki/wiki.pl

●Ruby on Rails究極指南:第 1回Instant Railsで始めるWindows環境の Rails

http://www.itmedia.co.jp/enterprise/articles/0703/05/news014_2.html

解凍したディレクトリをスペースが入らないパスに置く ○: C:\Apz\InstantRails-2.0-win ×: C:\Program Files\InstantRails-2.0-win

Page 5: 第1部「一時間で覚えるruby」

教材の準備 ● ドキュメント

http://www.ruby-lang.org/ja/documentation/ Ruby リファレンスマニュアル刷新計画 chm 版 1.8.6 用 (zip

形式 )

● 一時間で覚える Ruby ― MAYAH.JP http://mayah.jp/article/2004/ruby

●Ruby コーディング規約 http://shugo.net/ruby-codeconv/codeconv.html

●Book: 初めての Ruby http://www.oreilly.co.jp/books/9784873113678/

Page 6: 第1部「一時間で覚えるruby」

お約束の Hello, World! ruby

Ctrl+C で EOF を送ると評価される irb

1行ごとに評価される quit で終了

動かしてみる Hello, World! p と puts を覚える 文末の区切りは改行 1行に複数式を書くときはセミコロンで区切る

Page 7: 第1部「一時間で覚えるruby」

型の扱いは意外と厳しい 結果を予想してみよう

PHP ではどうだろう

puts "15" + 3puts 15 + 3puts "15".to_i + 3puts "15" + "hoge"

echo 15 + 3 ;echo 15 + '3' ;echo 15 + 'hoge' ;

Page 8: 第1部「一時間で覚えるruby」

配列 動かしてみる

配列の定義 インデックスでアクセス 逆順のアクセス 範囲外は nil が返るs = [1, 2, "hogepiyo"]s[1]s[-1]s[4]

Page 9: 第1部「一時間で覚えるruby」

ハッシュ PHP でおなじみ 順番は保持されないので注意 キーの型も区別する

h = {1 =>"hoge", "2" => "piyo", "foo" => "bar"}print h[1] ; puts h['1']

Page 10: 第1部「一時間で覚えるruby」

論理値の大きなワナ 0(integer) と’ 0’(string) は true

どういうこと?

hash_test = { "integer_0" => 0, "string_0" => "0", "boolean_false" => false, "nil" => nil}

hash_test.each do |key,value| print key + " : " if value puts "true" else puts "false" endend

Page 11: 第1部「一時間で覚えるruby」

ブロックつきメソッド { と } / do と end に囲まれた部分はブロッ

ク Ruby っぽい文法はまずここからなので慣れよう

ブロック内部をメソッドに渡している

10.times { |n| puts n }

hash = {"hoge" => "piyo", "foo" => "bar"}hash.each do |key, value| puts "key:#{key}=>value:#{value}"end

Page 12: 第1部「一時間で覚えるruby」

メソッドの定義 メソッドを定義できないと生活に困る

# メソッド定義、引数を取るdef add(x,y) # 最後に評価した値が返る x + yend

def sub(x,y) # returnつけたほうが # わかりやすい return x - yend

# 引数を受け取り intgerにa = ARGV[0].to_ib = ARGV[1].to_i

# << と + で文字列を連結puts "add:" << add(a,b).to_sputs "sub:" + sub(a,b).to_s

Page 13: 第1部「一時間で覚えるruby」

文字列は mutable PHP / Java は immutable

# << と + の違いa = "foo" ; b = "bar"c = "hoge" ; d = "piyo"

p a + b # aと b を連結した新しい文字列が返るp ap b

p c << d # cに d を破壊的に連結するp cp d

Page 14: 第1部「一時間で覚えるruby」

クラス ソースコード参照 他のオブジェクト指向言語との違いを

考えながら読むと理解しやすい getter / setter を attr_**** でまとめて定義 別ブロックで同一クラスの定義を行える 実行時に継承元クラスを決められる オーバーロードできない / オーバーライドはで

きる

Page 15: 第1部「一時間で覚えるruby」

正規表現 生活必需品

# 正規表現heystack = "Tie your mother down"# マッチした位置p heystack =~ /your (\w+) down/# 括弧でくくった部分を得られるp $1# 文字列の置き換えp heystack.sub(/#{$1}/, "sister")

Page 16: 第1部「一時間で覚えるruby」

ファイルの読み書き おおむね予想通りの書き方 トランザクションブロックが便利

File::open(ARGV[0], 'r') { |read_handle| File::open(ARGV[1], 'a') { |write_handle| while line = read_handle.gets if line =~ /^\s*#.*/ write_handle.print line end end }}

Page 17: 第1部「一時間で覚えるruby」

以上で 「一時間で覚える Ruby 」の内容はほぼク

リア 「初めて Ruby 」が読みやすくなる

PHP ではうやむやにできる箇所を意識しよう 「型」「ファイルハンドル」など

実際に手を動かそう おうちで試してみてね

Page 18: 第1部「一時間で覚えるruby」

おしまい

ご清聴ありがとうございました