Objective-Cはメソッド呼び出しがスペース
| 固定リンク | コメント (0) | トラックバック (0)
Objective-Cを勉強して初めての驚きがこれだ。
↓が引数を2つ持つメソッド。
- (void)setCount:(int)count andIndex:(int)index;
これは「setCount」メソッドとは呼ばないで「setCount:andIndex:」っていう名前のメソッドになる。
わお、もう、なんか今までの常識とかけ離れすぎていて驚きだけれども、確かにこうなってくるとプログラムが文章のごとくなってくるな。便利そう。というか、いい習慣が付きそう。
上のプログラムをrubyでかくと
def count_and_index(count, index)
end
かな。
ちなみに、メソッドを使うときも変わっていて
setCount:12 andIndex:6
みたいに使う。
だから、プログラムのソースコードを読んでいるときも、どういう値を渡しているかが一目瞭然。
ちなみに、ruby(とかjavaとかperl)だと
count_and_index(12, 6);
とかいう風になって、どういう値を渡しているかがわからない。
まあ、無理矢理hashを渡すという手もあるけど、言語自体がサポートしていないから不便だし、実装者判断になりがちで逆に読みにくくて使いにくいケースが多い。
↓はrubyで似たような感じで使った場合。
count_and_index(:count => 12, :index => 6)
でも↑の用にすると、メソッド側で受けるとかなりダサい。
def count_and_index(hash)
puts hash[:count]
puts hash[:index]
end
これだと、メソッド名(defのある1行目)を見ただけではどんな引数を受けているのかがわからない。凄く不便。
Ruby(とかperl)でももっと綺麗に表現できる方法があったら教えて下さい。
↓1日1ポチッとをお願いします!励みになります!
| 固定リンク | コメント (1) | トラックバック (0)
ということで、前に書いた記事(暴想: cocolog_image_uploader.rbをバージョンアップ)の宣言通りCocoaの勉強を始めて見た。
というか、Cocoaを利用するにはObjective-Cを勉強しなくてはいけなくて、その為にはCを勉強しないといけないという、、道のりは長いぜ。。
つーか、Cって凄いね。よくわかんないんだけど、文字列を表すのにいちいち
char* string = "hoge";
とかやんないといけないんだね。
ってか、
char ch = 'a';
ってシングルコーテーションとダブルコーテーションを使い分けるんだね。
ってか、"hoge"が表しているのは、charの配列のリファレンスってことなのか?perlで書くと
\["h", "o", "g", "e"]
みたいな感じ?
でもだったらいちいちchar*ってしなくてもいいよなぁ。
pointer* string = "hoge";
とかいっそ
pointer string = "hoge";
とか。
ま、いいか、そのうちわかるでしょう。
かと思ったら構造体とかいうJavaScript的にルーズで便利そうなハッシュっぽいものが出てきたし。
(きっと恥ずかしいことを書いているんだろうけど、あえて思ったことをそのまま書いてみる)
ちなみに、この本を読んで勉強しています。現在150p/350p。
| 固定リンク | コメント (0) | トラックバック (0)
最近のコメント