obj-C、正直、戸惑う表現が多い。
メソッド定義の時に、引数が沢山あるように思えるコードが良く出て来て、色んなサイトや本では、適当に流されている。
ここに良い説明があった。
http://www.atmarkit.co.jp/fcoding/articles/objc/03/objc03b.html
e. 引数が2つと戻り値があるメソッド
– (NSString *)myMethod5:(NSString *)argString
myInt:(int)argInt;↓メソッドの実行例
NSString *result = [test myMethod5:@”test” myInt:5];
これが分からなかった。
引数のそれぞれにキーがあって、それぞれの引数の役割が想像出来るようになっている。これはいい。
PHPやjavascriptみたいに
myMethod(a,b,c){ }
ではa,b,cの役割が分からないし、順番が違うと機能しない。(だからarrayで渡すという手もあるのだが)
じゃ、いったい、メソッド名は何なのだ?
ただキーと型を並べてるだけじゃないか、と思う。
上記のメソッド名は、
myMethod5 : myInt :
という事らしい。
???キーを並べるというメソッド名の定義は、とても違和感がある。
例えば、「底辺と高さから三角形の面積を計算する」というメソッドを作りたい場合、
他の言語で言えば、
getArea (teihen, takasa)
としたい所、obj-cでは
teihen : takasa :
となるのだろうか?「面積を出す」という機能は連想出来ないではないか?
しかし、これならこれで、諦めて覚えるしかないですね。
コメント