Smalltalk がわかった気になる?

えーと.Smalltalk に入門してみたので,忘備録的にエントリを書いてみた.

  • *.im(最初は,visualnc.im とか?) をバックアップしておくといいかも.
    • とあいえ,VisualWorks 側からどうやってロードすんだっけ?

クラス,メソッドは,パッケージ,プロトコルに絶対所属するみたい

  • Package(class category) > Class
  • Protocol(message category) > Method

オブジェクト,メッセージ

  • anObject message "anObject に message メッセージを送る"
  • anObject keywordMessage1: aSubject1
  • anObject keywordMessage1: aSubject1 keywordMessage2: aSubject2

キーワードメッセージはメッセージの最後に':'(コロン)が付く.

コメントは,"",文字列は,''
あと,行の区切りは'.'(カンマ)
代入は,':='
ローカル変数は,||(パイプ)で作る.
配列は,#(1 2 3) みたいな感じ.
左結合 3 + 4 * 5 "=> 35"

ブロック

  • ラムダ?
  • [] で書く.
  • [:aValue | aValue msg ] みたく':'(コロン)を使って,aValue という引数を指定
  • ブロックの中にもローカル変数が作れる.
  • 実行するときは,aBlock = [...]. aBlock value とか aBlock value: aV1 value: aV2 みたいな感じ

分岐,ループ

  • anObject ifTrue: [ "真のときの処理" ] ifFalse [ "偽のときの処理" ]
  • aCollection do: [:each | "繰り返し処理" ]

なんか間違ってたりしたらツッコんでくだしい.

これで,超積読ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集 が読めるかな?

参考