できるけど、やらない方がいいこと他
はい、みなさん。世の中にはできるけどやってはいけないこと、やらない方が
いいことっていろいろありますね。
知ってるとうれしいこともありますね。
- レシーバで、メッセージの送り手が知りたい時、thisContext sender とすると
送り手がわかっちゃう。dependency ハッキングもできるか。:-p
- 任意のインスタンス変数に accessing method 以外から触っちゃうには、
instVarAt: で見えちゃう。
- respondsTo: でオブジェクトがそのメソッドに答えられるか調べられる。
- クラスに allInstances を送ると、すべてのインスタンスがもらえる。
- インスタンスに allOwners を送ると、参照を探してくれる。
- クラスライブラリの private メソッドは使わないようにしましょう。
なくなるかもしれません。
- yourself を使うと便利な時。メッセージのカスケーディング (;) をして、
最後に self が欲しかったらつける。
- Collection クラスのサブクラスを作る必要はない。インスタンスを生成して
オブジェクトコンポジションで使うだけ。
- Collection の列挙 (do: など) をしている時に、Collection 自身の大きさを
変えてはいけない (add:, remove: など)。要素を変更するのは問題ない。
- Collection の変換を行なった時、元の Collection はそのまま。
新しい Collection と要素を共有する。
- #() 形式の配列は実行時に作られるのではないから、要素として式は書けない。
リテラルだけ。
- & と and: の違い。& の後の式は必ず実行される。and: の後のブロックは、前の
式が true の時だけ実行される。
- = と == は、オブジェクトが等価か同一かをチェックする。
- dependency を使うには、明示的に chenged: を送らないといけない。
依存物にも update: メッセージの実装が必要。
- valueNowOrOnUnwindDo: を使うと例外が起こっても2番目のブロックが実行さ
れる。
- Ctrl-c でもどうにもならなくなったら、Shift-Ctrl-c で ObjectMemory quit.
esc する。
他に何かあったかな?
cdlの部屋へもどる。
前のページに戻る。
masuda@im.dendai.ac.jp