var_dump を作ってみる。
php でお馴染みの var_dump . ruby で言うところの inspect を作ってみる。
# import <Foundation/Foundation.h> void dump( id p) { printf("%s\n", ([p description]).UTF8String ); } NSString * greeting(){ return @"Hello"; } int main( int argc, char** argv ){ @autoreleasepool{ dump(greeting()); NSString *str = @"~/Desktop"; NSArray *arr = @[@"hello", @"World"]; NSDictionary *dict = @{ @"key0": @"value0", @"key1": @"value1", @"key2": @"value2", }; dump( str ); dump( arr ); dump( dict ); } return 0; }
単純な関数の定義
関数の定義はC言語に型を足したものとして考えられる。単純なC関数と同等である。
次の例は、パット見でC言語っぽくもある。けれどNSStringの UTF8Stringを使ってて立派なobjc言語
void dump( id p) { printf("%s\n", ([p description]).UTF8String ); }
戻り値が欲しければ、NSString を戻り値の型で書くだけ。
NSString * greeting(){ return @"Hello"; }
この、C言語っぽさが、個人的にはスゴく好きなんだけど。
Swiftがfunction で済まされてるの何でだろうと思ってたら、Objcもシンプルな関数を作れたんですね。