月曜日はRubyの日〜一日目

おお!
書く暇がないっすね。
学習時間としては日々30分を目安に考えているんですが、
それをここに書き出すと相当な時間が飛んでいくんですけど。。。
世のブロガーの人々はすごいですね。
ここに書くことを契機に勉強してますから、
書かないとやんなくなりそうなので、とりあえず書いときます。

写経本

テキストはこれを選びました。
持ってたし、高橋さんのだし。
ていうか、このサイズを積読にしてちゃだめですね。。。
折角わかりやすく、書いてある本なのに。。。
ちゃんと読もうよ。>おれ。

環境

cygwin使ってると、普通に入ってます。
あ、入れ方によっては入ってないかもしれないですね。
それでも、アップデートして追加でインストールすればよいかと。
あと、irb ってコマンドで、インタラクティブに入力ができるそうです。
それもrubyいれたら入ってきますね。お手軽だ。

1.1 Rubyを動かす

 print("Hello, Ruby.\n")

で、

 Hello, Ruby

が表示されました。
どうも、Javaが最初の言語なせいか、メソッドが、インスタンスにも、クラスにも紐づいていないところが、
Perlで違和感があったんですが、若干慣れてきた感があります。
まぁ、よくよく考えれば、メイン関数がクラスに紐づいてなければならないJavaの仕様の方が、変な気もしますし、staticでpublicなメソッドで、
必ずクラス名から書かなきゃならんのも、手間なだけなきもしますしね。

1.3 文字列

 \n

で改行は他の多くの言語と同じですね。
”\”でエスケープですね。
この辺って、特にどの言語も変える必要性って感じないんでしょうかね。
windowsで日本語環境だと、円マークになってやだったりしますけどね。

ちょっとびっくりしたのが、

 print("Hello,
 Ruby
 !
 ")

で、

 Hello,
 Ruby
 !

になること。これは便利かも。”\n”がでてくるより、私はコード見やすい気がしますけどね。直感的だし。
ただ、文字列長くなって、一行で出力したいんだけど、ソース上では、改行したいときってどうなのかなって思いますけど。
あと、リテラルじゃなくて、変数使ってるときも同じようになるのかな?

で、

 print("Hello,\nRuby\n!\n")
 print('Hello,\nRuby\n!\n')

は、

 Hello,
 Ruby
 !
 Hello,\nRuby\n!\n

だそうです。シングルクォート内では、\エスケープはきかないそうです。
この辺は、Perlと同じですね。というか、まつもとさんはPerlをインクリメントしようとされたそうなので、
当然といえば当然なんでしょうね。