それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

objective-cでvar_dumpをして思うこと。objcって型の多いC言語に見える。

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もシンプルな関数を作れたんですね。

もしかして、C言語から入った人にはJavaよりも分かりやすい?