狠狠撸

狠狠撸Share a Scribd company logo
新しいリテラルてば
                   どーすか?
                   Cocoa勉強会?#51?/?2012-03-17?/??村渡




Powered?by?Rabbit?1.0.6?and?COZMIXNG
今?のお題
Objective-Cに
新しく導?されるかもな
リテラル表記について、
みんなの感想を聞きたい!
注
今?お話することは、3/16時点の
clang?trunk?r152917?を
元にしています。
clang?r152137
Add?clang?support?for?new?
Objective-C?literal?syntax?for?
NSDictionary,?
NSArray,NSNumber,?and?boolean?
literals.?...
http://llvm.org/viewvc/llvm-project?
view=rev&revision=152137
ついこないだの2012-03-06
実際どういう書きかた?
test/SemaObjC/をみたり、
test/ARCMT/の.mと.m.resultを
?べてみるとか。
FileMergeしてみる
objcmt-subscripting-literals.m
FileMergeしてみる
objcmt-numeric-literals.m
例?-?NSArray

@[ obj1, obj2 ]
// [NSArray
//    arrayWithObjects:obj1, obj2, nil]

ary[1]
// [ary objectAtIndex:1]
例?-?NSDictionary

@[ key1 : val1, key2 : val2 ]
// [NSDictionary
//    dictinaryWithObjectsAndKeys:
//      val1, key1, val2, key2, nil]

keyとvalueの順が、、、
例?-?NSDictionary

 dict[key]
 // [dict objectForKey:key]

 dict[key] = val
 // [dict setObject:val forKey:key]
例?-?NSNumber

  @123
  // [NSNumber numberWithInt:123]

  @-123
  // [NSNumber numberWithInt:-123]
例?-?NSNumber

 @123.0
 // [NSNumber numberWithFloat:123.0]

 @YES
 // [NSNumber numberWithBool:YES]

@YESはちょっとキモチワルイかも
ちょっと疑问

    ary[1];   dict[key];

どうやって区別してる?
 インデックスが数値?or?id?
 レシーバのクラス?
ちょっと疑问

     ary[1];   dict[key];

どうやって区別してる?
 インデックスが数値?or?id??←
 レシーバのクラス?
test/SemaObjC/?いじって試してみた
なんと
NSArrayやNSDictionaryでなくても
  objectAtIndexedSubscript:
  (NSInteger)index
 objectForKeyedSubscript:(id)key
といったメソッドがあれば
getter/setter表記が使える!
感想
RubyとかPythonやってる?的には
なちゅらるな感じ
感想
コンパイラ?持ちにしたら
もう、やりたいほうだいっすね。
まあでも
正常な進化だとは思うのですよ。
感想
Cocoaはオブジェクトと
非オブジェクトが共存してるけど
そういうとこのややこしさが
またクローズアップされるかも。
NSNumberとか。
ということで
 イイ!?or?これはないわ…
 こういう機能もほしい
などなど聞かせてください。
おまけ
試してみたい!って?は
Clang?-?Getting?Started
http://clang.llvm.org/get?started.html
make?30分くらい?@?MBP?2009
終

Powered?by?Rabbit?1.0.6?and?COZMIXNG

More Related Content

new Objctive-C literal syntax