2008.11.21 (Fri)
本日のお勉強(Ruby)
今日はRailsの勉強をちょっと休んで、Ruby本体のお勉強。Yuguiさん著の「始めてのRuby」が届いたのでね。
この本、表紙から分かるようにオライリーの本ですが、オライリーの「初めての○○(Learning ○○)」の例には漏れていて、翻訳ではなく書き下ろしです。
まだ少ししか読んでないけど、ごく個人的なメモを。
▼shebang
以前も書いたshebang(シェバング)について記述がありました。
なるほど。このソースに実行可能属性(chmod +x)すると、以下で実行できるようになる、と。UNIXシステムやGNU/Linuxシステムではshebangを頼りに、ソースコード自体を実行可能なプログラムにすることができます。
$./hello.rb
▼::
Javaから来た私が慣れない記法に「::」があります。
なるほど! クラスメソッドを表す時にも使うんですね。でも、継承の場合はちょっと違いますよね。「Stringオブジェクトのインスタンスメソッドeach_byte」のことを「String#each_byte」と書く慣習があります。また、「Timeクラスのクラスメソッドnow」のことを「Time.now」あるいは「Time::now」と表します。
class Transcript < ActiveRecord::Base
ここで使われている「::」は、やはりスコープを表していると思います。
▼コードゴルフ
標準入出力への書き出しについてprintf、putsなどがよく使われていますが、pメソッドも紹介されています。irbと共に重宝するが、デバッグや学習、コードゴルフ以外に使うのはお行儀が悪いとのこと。コードゴルフというのは初めて聞きましたが、「課題に対しての実装コードの短さを争う協議」ですって。面白いですね。
▼シンタックスシュガー
シンタックスシュガーという表現がよく出てきます。以前、Matzさんの連載では「ブロックは単なるシンタックスシュガー(文法的なお化粧)」と訳されていました。比較的、自由な表記が可能なRubyならでは、ってことになるのでしょうか。
この記事のトラックバックURL
この記事へのトラックバック
| BLOGTOP |

