コモディティ化するエンジニア

組み込み系のSI屋から、Railsを扱うWeb系のベンチャーに転職した筆者が、日々ミジンコなりに情報を綴るブログ。

ミニツク演習1:Hello, Ruby

前回の記事を投稿してから2ヶ月……
更新する、と書いておいて音沙汰がなくすいません。
別に、待っている人いなかったと思いますが、すいません。

Rubyは全く触っていなかったわけではなく、
Rubyeラーニング教材 ミニツク はもちろん、Railsエンジニアの登竜門(?)の Railsチュートリアル とか、
テスト駆動開発を体験しながらRubyの文法を学べる Ruby Koans とかひっそりとやっていました。

この2ヶ月でネタは結構たまっているので、
また今日から少しずつ更新していければと思います。

第1章:Hello, Rubyレッスンの演習

それでは早速本題、ミニツクの演習1題目です。
1題目なので非常にシンプルな出題になっています。

演習
 以下の出力結果と同じものを標準出力に出力するプログラムを作成してください。

出力結果
foo
bar
baz

自分の解答

puts("foo", "bar", "baz")

演習をやってみての所感

特にとりたてて説明することはありませんが……
puts は文末に改行を伴う、という部分でしょうか。

標準出力に出力するメソッドは他に printp があります。

print

print は文末で改行を行いません。
改行をしたい場合、\nと、明示的に改行コードを書いてあげる必要があります。
puts と print の違いがわかるように動かしてみると、こんな感じです。

puts "Hello, Tom."
puts "-----------"
print "Hello, Tom."
puts "-----------"
print "Hello, Tom.\n"
puts "-----------"
Hello, Tom.
-----------
Hello, Tom.-----------
Hello, Tom.
-----------

p

一方、p は、オブジェクトの状態を詳細に表示してくれるものです。
以下のように、文字列オブジェクトの場合、文字列を、
配列オブジェクトの場合、配列の中身を出力してくれます。

str = "Hello, Tom."
ary = ["Hello", "Tom"]
p str
p ary
puts str.inspect
"Hello, Tom."
["Hello", "Tom"]
"Hello, Tom."

ちなみに、別の解釈をすると、 inspect というメソッドの返り値を標準出力したものと同義と言えます。
p は、ちょっとしたデバッグ時に大変重宝するメソッドです。

ミニツクについて補足

本ブログでは淡々と演習のみを取り上げる予定ですが、
ミニツクの教材として優れているところは、章末のドリルだと思います。
このドリル、別の言語を触っていると勘違いしやすい部分や、
生理解で進めがちな部分をピンポイントで攻めてきます。
小ぶりでも体系的に学びたい方は是非、 ミニツクの完走をまず目指してみては如何でしょうか。