コース目次 / 第0章
試食 — Rubyの書き心地
インストールなしで、ブラウザの中でRubyを3つだけ書いてみます。
インストールは要りません。Rubyには公式の練習場があり、日本語で使えます。
用意するもの
ブラウザで TryRuby の Playground を開いてください。Rubyの公式サイトが用意している練習場で、日本語で表示されます。
画面は上下に分かれています。上の EDITOR にコードを書いて、Run ボタンを押すと、下の OUTPUT に結果が出ます。
いちばん最初の Run だけ、数十秒かかります。Ruby本体をブラウザに読み込んでいるためです。2回目からは一瞬です。固まったように見えても待ってください。
ひと口め: 繰り返しの書き心地
EDITOR の中身を全部消して、これを貼ってください。
puts RUBY_VERSION
5.times do
puts "ようこそ"
end4.0.0
ようこそ
ようこそ
ようこそ
ようこそ
ようこそ読んでみてください。「5回、これをやる」と、ほぼ英語のまま書いてあります。
5.times — 数字にコマンドを送っています。Rubyでは数も文字も、すべてが「命令を受け取れるもの」です。for のような専用の構文ではなく、5という値そのものに「5回やって」と頼む。ここがRubyらしさの入口です。
do から end までのかたまりをブロックと呼びます。この先ずっと出てきます。
1行目に出た 4.0.0 はこの練習場のRubyのバージョンです。あなたのMacに入っているRubyは、もっと古い 2.6.10 です(理由は次の章で説明します)。
このコースで書くコードは、古いほうでも新しいほうでも同じように動くものだけを選んであります。そのことは公開前に両方で実際に走らせて確かめています。
ふた口め: 一覧をめぐる
puts "=" * 20
tabi = ["直島", "尾道", "金沢"]
tabi.each_with_index do |machi, i|
puts "#{i + 1}. #{machi}"
end====================
1. 直島
2. 尾道
3. 金沢2つ、気づいてほしいところがあります。
1つめ。"=" * 20 で区切り線が引けました。文字に掛け算ができます。こういう「気が利く」ところがRubyの性格です。
2つめ。|machi, i| の縦棒です。ブロックが受け取るものに名前を付けています。「一覧をめぐって、1つずつ machi と呼ぶ」と読めます。
み口め: つなげる
tabi = ["直島", "尾道", "金沢"]
puts tabi.length
puts tabi.reverse.join(" → ")
puts tabi.map { |machi| machi + "に行った" }3
金沢 → 尾道 → 直島
直島に行った
尾道に行った
金沢に行ったtabi.reverse.join(" → ") は「逆にして、つないで」と左から右に読めます。
ブロックは { … } でも書けます。1行で済むときは波括弧、複数行になるときは do … end。どちらでも同じもので、読みやすいほうを選ぶ、というのがRubyの流儀です。
「書き方が1つに決まっていないと落ち着かない」人にはここが第一の分かれ目です。逆に「そのときいちばん読みやすい形で書ける」ことを気持ちよく感じる人もいます。
この言語の性格
| 感じたこと | Rubyの設計思想 |
|---|---|
| 英語の文のように読める | 「プログラマが楽しいこと」を目的に置いて作られた言語 |
| 何にでも命令を送れる | 数も文字も配列も、すべてが命令を受け取れるもの |
| 書き方が1つに決まっていない | 読みやすいほうを書き手が選ぶ。自由と引き換えに、統一は自分で決める |
ここまでで分かること
「合わないかも」と思ったなら、それも収穫です。15分で分かったなら上出来で、それがこの試食コーナーの目的です。別の言語を試すのも、まったく正しい進み方です。
「もう少し触ってみたい」と思ったなら、次の章で Ruby をあなたのパソコンに入れます。ここから先は手元に残る道具を作ります。
持ち帰りに進む前に
次の章で入れるものと、かかる時間の目安です。
| 内容 | |
|---|---|
| 入れるもの | Macは何も要りません(最初から入っています)。WindowsはRubyInstaller |
| ダウンロード | Macは0MB。Windowsは約20MB |
| 時間の目安 | Macは5分、Windowsは20分 |
| 環境構築の重さ | Mac ★☆☆ / Windows ★☆☆ |
こうなっていればOK
卒業まであと4章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。