Upload
mochiko-astech
View
12.852
Download
0
Embed Size (px)
DESCRIPTION
うずらフォントで作成したのですが、slideshare上ではなんとも可愛げのないフォントに・・・。 ダウンロードして自由に使っていただいて構いません。 ダウンロードされる方は、一緒にうずらフォントをダウンロードして使うことをお勧めします。 http://key.milkcafe.to/azuki/font/uzura.html 発表の詳細情報はブログのエントリとしてまとめてあります。 あわせてこちらもご覧下さい。 http://mochikoastech.blog113.fc2.com/blog-entry-27.html http://mochikoastech.blog113.fc2.com/blog-entry-28.html http://mochikoastech.blog113.fc2.com/blog-entry-36.html http://mochikoastech.blog113.fc2.com/blog-entry-37.html
Citation preview
15分でわかるPHP と Ruby の違い
第3回イケテル Rails 勉強会@東京2008年4月26日
みなさん
こんにちは
今日は
第3回イケテルRail s勉強会@東京
の中で
15分
だけ
お時間を頂戴して
PHP使いから見たRuby
という視点で
Ruby
の
話をしたいと思います
・・・?
イケテル
Rails
勉強会なのに
なんで急に
PHP使いから見た
Ruby
なのか?
と言うと
理由1
前回の
第2回イケテルRails勉強会@東京
で
見た
Java使いから見た
Rubyの特色
という発表が
すっっっっっ
・・・
ごく
イケてたから!
ああ、あんな発表を
いつか私もしてみたい・・・
そんなあこがれの気持ち
これが理由1
なのです
私欲にまみれててすみません・・
で
もうひとつの理由は
身の回りに
PHP
使い
が
多かったから
これが理由2です
・・・
もう少し説明しますと
なんと言いますか
私がRBCに
Railsイケテル!Rubyおもしろい!
って
教えてもらったみたいに
周囲に居る人に
Railsイケテル!Rubyおもしろい!
って
知ってもらえる
きっかけを
作りたかったのです
貰ったものを
増やして
他の人に渡す
そんなループを
RBCで
ぐるっぐる
ぐるっっぐる
回してみたかった!のです
長々と語りましたが
(前説で3分経ったよ)
要は
PHPを
使っている人のための
Rubyの
きっかけ講座
に
なれたら嬉しい
それだけです
よーし
行きますよ!
あ、その前に
どんな流れ
で
話をするのか
だけ
先にお話ししておきます
今日の流れ
1.HelloWorldを PHPとRubyそれぞれで書く
2.そこから分かることを話す
3.「モナベアツスクリプト」を PHPとRubyそれぞれで書く
4.そこから分かることを話す
この4つです
そして時間も短いので
この話の目指すところは
あくまで
きっかけ講座
にすぎません
なので
「もうちょっと詳しく
知りたかった・・・」
と
思ってもらえれば
大成功!
という訳で
超駆け足です
よーし
今度こそ行きますよ!
PHP使いから見たRuby
1
HelloWorldを書いてみる
1-1
先ずは
PHP
で
書いてみる
こんなテキストファイルを
作って
<?php
echo ‘Hello World’;
?>
こんな名前で保存する
sample1.php
そして
コマンドラインで
php sample1.php
をたたく
実行結果は?
Hello World
でたー
PHP
で書いた
HelloWorld
完成です
ではでは
1-2
今度は
Ruby
で書いてみる
さっきと同じく
こんなテキストファイルを
作って
puts 'Hello World'
こんな名前で保存する
sample1.rb
そして
コマンドラインで
ruby sample1.rb
をたたくと
実行結果は?
Hello World
おー、出たー(結果はそりゃ一緒だよね)
簡単です
めっちゃくちゃ
簡単です
そしてこんな簡単な
HelloWorldから
合計8つもの
「違うところ」
「同じところ」
つまり
学びのポイント
を
見つけます
行きますよー?
その
2
HelloWorldから分かる8つのこと
2-1
Rubyはコンパイル不要
PHP
と
Ruby
どちらも
インタプリタ言語なので
意識的なコンパイルは
不要
です
これが1つ目
次!
2-2
クラスは作らなくても良い
PHP
は
基本的に
手続き型の言語なので
クラスは
作りません(特にPHP4以前)
そして
Ruby
Ruby
Ruby
Rubyは
ですね
えーと
オブジェクト指向型言語
なので
す
が
クラス
作らなくてもOKです
PHPみたいにも書けるのです
Rubyってアレでしょ?
クラス・・・作んないと
いけないんでしょ?
と思っていたPHP使いには
ちょっと嬉しい事実!
そーかクラスなくてもいーのかー
よーし次!
2-3
Rubyの標準出力はputs
PHP
の標準出力は
echoやprint
ですが
Ruby
の標準出力は
putsやprint
なのです
(2-3は それだけです)
次!次!(時間ないよー)
2-4
文字列は“か’で囲む
これは
PHP
も
Ruby
も
一緒です
それから
シングルクォートで囲むと
式の展開が行われない
ところも
一緒
です
・・・
次ー!(ちょっと焦ってます)
2-5
Rubyは式ごとの;は不要
PHP
だと
式の終わりごとに「;」を書かないと
Parse error: parse error, unexpected
String...
などと怒られますが
Ruby
は
「;」要りません
改行が「;」の代わりです
これが2-5
えーとあとみっつ・・・
2-6
どちらもファイル名は自由
これも立派な「同じところ」
Ruby
も
PHP
も
拡張子をそれぞれ
.php
や
.rb
にしていれば
ファイル名自体は
自由です
クラス名と統一!とかいうルールはないのです
よし!
あと2こ!
2-7
Rubyには開始と終了の宣言が無い
こっちは立派な「違うところ」
PHP
は
最初
と
最後
を
<?php ?>
で囲わないといけません
どこからどこまでがソースか
分かるようにしているのです
でも
Ruby
は
単純
超単純
ファイルの最初から最後までがソース
なんて潔い!
Rubyって男前!
そして最後に!
2-8
Rubyの実行コマンドはruby
PHP
が
phpコマンドを使うように
Ruby
は
はrubyコマンドを使います
・・・ふう(もうへとへと)
すごい!
たったあれだけの
HelloWorldから
8こも学んだ!
自分に拍手!
ぱちぱち!
前半戦終了
では
1と2が終わったので
もう一度アジェンダ
確認
1.HelloWorldを PHPとRubyそれぞれで書く
2.そこから分かることを話す
3.「モナベアツスクリプト」を PHPとRubyそれぞれで書く
4.そこから分かることを話す
3と4に行きましょう
よーし
PHP使いから見たRuby
3
モナベアツスクリプトを書いてみる
モナベアツスクリプト?
あれですよ
モナー
に
世界のナベアツ
みたいなことを
やらせる
スクリプトです
ええと
ナベアツをご存知ない方は
FizzBuzzみたいなものだと思ってください
つまり
3が付く数字と
3の倍数のとき
アホになって
5の倍数のとき
犬っぽくなります
それ以外のときは?
普通のモナー
シンプルなつくりです
では書いてみよー
3-1
先ずは
PHP
で書いてみる
こんなテキストファイルを
作って
<?php// 3 の倍数もしくは 3 がつく数字の時はアホになって// 3 の倍数でも 3 がつく数字でもなくて、 5 の倍数の時はモナーが犬っぽくなる
for ($i = 0; $i < 40; $i++) {
$monaBeatsu = '';
if (strpbrk(strval($i + 1), '3') !== false || ($i + 1) % 3 === 0) {$monaBeatsu = ' / ̄ ̄ ̄ ̄ ̄ ' . "\n";$monaBeatsu .= ' ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ ' . strval($i + 1) . "\n";$monaBeatsu .= ' \_____ ';
} elseif (($i + 1) % 5 === 0) {$monaBeatsu = ' ∧_∧ / ̄ ̄ ̄ ̄ ̄ ' . "\n";$monaBeatsu .= ' ( = ゚ ω )< ゚ ' . strval($i + 1) . "\n";$monaBeatsu .= ' ( ) \_____ ' . "\n";$monaBeatsu .= ' | | |' . "\n";$monaBeatsu .= ' (_ _ )_) ';
} else {$monaBeatsu = ' ∧_∧ / ̄ ̄ ̄ ̄ ̄ ' . "\n";$monaBeatsu .= ' ( ´∀ `)< ' . strval($i + 1) . "\n";$monaBeatsu .= ' ( ) \_____ ' . "\n";$monaBeatsu .= ' | | |' . "\n";$monaBeatsu .= ' (_ _ )_) ';
}
echo $monaBeatsu . "\n";}?>
こんな名前で保存する
sample2.php
そして
コマンドラインで
php sample2.php
をたたく
実行結果は?
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 1 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 2 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 3 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 4 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 5 ( ) \_____ | | | (_ _)_)
これが
40まで
続きます
こんな感じです
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 1 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 2 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 3 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 4 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 5 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 6 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 7 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 8 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 9 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 10 ( ) \_____ | | | (_ _)_)
/ ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 21 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 22 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 23 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 24 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 25 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 26 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 27 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 28 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 29 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 30 \_____
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 11 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 12 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 13 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 14 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 15 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 16 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 17 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 18 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 19 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 20 ( ) \_____ | | | (_ _)_)
/ ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 31 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 32 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 33 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 34 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 35 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 36 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 37 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 38 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 39 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 40 ( ) \_____ | | | (_ _)_)
ちょっと
カワユス
・・・
これがPHP
で書いた
モナベアツスクリプト
でした
ではでは
3-2
今度は
Ruby
で
書いてみます
さっきと同じく
こんなテキストファイルを
作って
# 3 の倍数もしくは 3 がつく数字の時はアホになって# 3 の倍数でも 3 がつく数字でもなくて、 5 の倍数の時はモナーが犬っぽくなる
for i in 1..40
mona_beatsu = '';
if i.to_s["3"] != nil || (i % 3) == 0mona_beatsu = ' / ̄ ̄ ̄ ̄ ̄ ' + "\n"mona_beatsu += ' ヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ< ' + i.to_s + "\n"mona_beatsu += ' \_____ '
elsif (i % 5) == 0mona_beatsu = ' ∧ ∧ _ / ̄ ̄ ̄ ̄ ̄ ' + "\n"mona_beatsu += ' ( = ゚ ω ゚)< ' + i.to_s + "\n"mona_beatsu += ' ( ) \_____ ' + "\n"mona_beatsu += ' | | |' + "\n"mona_beatsu += ' (_ _)_) '
else mona_beatsu = ' ∧ ∧ _ / ̄ ̄ ̄ ̄ ̄ ' + "\n"mona_beatsu += ' ( ´∀ `)< ' + i.to_s + "\n"mona_beatsu += ' ( ) \_____ ' + "\n"mona_beatsu += ' | | |' + "\n"mona_beatsu += ' (_ _)_) '
end
puts mona_beatsu
end
こんな名前で保存する
sample2.rb
そして
コマンドラインで
ruby sample2.rb
をたたくと
実行結果は?
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 1 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 2 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 3 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 4 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 5 ( ) \_____ | | | (_ _)_)
・・・
まあ実行結果はPHPと
変わりません
さっきと同じく
40まで
続きます
こんな感じです
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 1 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 2 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 3 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 4 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 5 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 6 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 7 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 8 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 9 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 10 ( ) \_____ | | | (_ _)_)
/ ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 21 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 22 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 23 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 24 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 25 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 26 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 27 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 28 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 29 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 30 \_____
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 11 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 12 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 13 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 14 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 15 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 16 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 17 ( ) \_____ | | | (_ _)_) / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 18 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀ `)< 19 ( ) \_____ | | | (_ _)_) ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 20 ( ) \_____ | | | (_ _)_)
/ ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 31 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 32 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 33 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 34 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 35 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 36 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 37 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 38 \_____ / ̄ ̄ ̄ ̄ ̄ ヽ )メ )メ )ノ< (゚∀゚ (゚∀゚ (゚∀゚ 39 \_____ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( = ゚ ω )< ゚ 40 ( ) \_____ | | | (_ _)_)
ちょっとなごむ
・・・
それは
さておき
HelloWorldよりは込み入ってても
そんなに難しくない
のです
コメント含めてもせいぜい30行くらい
ではこの
モナベアツスクリプトから
さっきと
同じ
ように
合計8つの
「違うところ」
「同じところ」
つまり
おもろー
いや違った
学びのポイント
を
見つけます
行きますよー?(さらに駆け足で)
その
4
モナベアツスクリプトから分かる8つのこと
4-1
Rubyのコメントは#で始まる
PHP
のコメントは
//で始まるか/* */で囲う
のですが
Ruby
のコメントは
#で始まるか
=beginと=endで囲う
のです
ふーん
次!(時間ないのー)
4-2
変数の頭に$が不要
PHP
の変数は
$で始まります
$i
とか
$j
とか
そういう感じです
でも
Ruby
のローカル変数は
$要りません
あとは
命名規則もあって
PHPなら
変数名は
$myName(2つめ以降の単語は
頭文字大文字)
でも
$MyName(単語は全部
頭文字大文字)
でも
自由!
なんですが
Rubyの
変数名は
my_name(単語は _で区切
る)
という
ルール
があります
じゃあ次!
4-3
繰り返しの書き方がちょっと違う
PHP
1から10まで数えたかったら
for (i = 0; i <10; i++) {
echo i + 1;
}
同じことを
Ruby
でやりたかったら
for i in 1..10
puts i
end
でも
Rubyは
どちらかというと
For文
よりも
timesメソッドを
使うことの方が
多いです
こんな感じ
10.times do |i| puts i + 1end ( do 〜 endで囲まれた部分を繰り返し、 ||で囲まれた iに回数分の数値が代入される)
では次!(間に合わない気がしてきた)
4-4
if文の書き方もちょっと違う
さっき
For文
の書き方が
ちょっと
違いましたよね?
それと
同じように
if文の書き方も
ちょっと違います
PHP
が
if ($result === 1) { echo 'TRUE';
} elseif ($result === 0) { echo 'FALSE';
} else { echo '?';
}
なら
Ruby
は
if result == 1 puts 'TRUE'
elsif result == 0 puts 'FALSE'
else puts '?'
end
いちばん驚いたのは
if result == 1 puts 'TRUE'
elsif result == 0 puts 'FALSE'
else puts '?'
end
PHP: elseif
Ruby: elsif
違い分かりました?
PHP: elseif
Ruby: elsif
Rubyってelseifのeないの?!
コード書いてて
絶対
間違えます
豆知識!
次つぎー!
4-5
Rubyは++やーーが使えない
PHP
でよく使う
i++
とか
iーー
なんと
Ruby
では
使えません
i=i+1
を
少しでも
省略して
書きたかったら
i+=1
を
使います
あと3つ!
次は・・・
4-6
どちらも型宣言が不要
これは「同じところ」ですね
PHP
も
Ruby
も
$a=5;$a=‘hoge’;
とか
a=5;a=‘hoge’;
のように
intを代入していた変数に文字列を再代入
みたいな
Java使いにとっては
ちょっと気持ち悪いことが
出来ちゃいます
(でも便利)
まだ時間ある?
あと2つ!
4-7
メソッドの呼び出し方がちょっと違う
PHP
は
echo strval($i);
みたいな書き方
つまり
オブジェクト.メソッド
みたいな書き方は
しません
一方
Ruby
は
puts i.to_s
のように
オブジェクト.メソッド
な書き方を
します
あとは
引数
に
( )
を
つけないのも
PHPとの
違い
ですね
では
最後!(もう余裕ない)
4-8
Rubyは文字列の連結が .=
じゃなくて +=
PHP
の
文字列の連結は
$str = ‘aaa’;
$str .= ‘bbb’;
のように
.=
で繋ぎます
そして
Ruby
の場合は
str = ‘aaa’
str += ‘bbb’
のように
+=
で
繋ぎます
このように
書き方が微妙に
違う
のです
ささやかですが
自分で書いてて
引っかかったり
知りたかった
ポイント
を
挙げてみました
・・・ぜぇぜぇ
よし!〆ます
たったあれだけの
モナベアツスクリプトから
8こも学んだ!
HelloWorldと合わせて
16こも学んだ!
そんな自分に
拍手!
ぱちぱち!
それから
RBCに拍手!
ぱちぱち!
後半戦終了
では
これにて
PHP使いから見たRuby
を
終わります
ご清聴
ありがとうございましたー