Objective C中的語法糖

2021-09-23 20:58:16 字數 2270 閱讀 4882

xcode 4.4中llvm compiler 4.0』 引入的新特性(2023年wwdc發布的東西)。到這小菜本人就有柳暗花明又一村的感覺啦~就可以好好的偷一下懶啦~於是系統的總結了一下引入的新的特性,話不多說,coder說話哪能少的了code呢!ludashi~走起~(雖然是12年的東西,這不剛學蠻~在oc中用感覺挺新鮮的,簡化後對字典的初始化感覺和php有點相似~感覺見到親人啦~)

問題是陣列引起的那麼就從陣列開始吧

1.一般陣列的初始化和訪問陣列元素是這樣的

在之前的部落格中我是這樣初始化nsarray的:

1 //nsarray的便利初始化

2 nsarray *array1 = [[nsarray alloc] initwithobjects:@"aaa", @"bbb", @"ccc", nil];

3 //nsarray的便利構造器

4 nsarray *array2 = [nsarray arraywithobjects:@"111", @"222", @"333", nil];

獲取陣列的元素

//獲取相應索引的元素

id element = [array1 objectatindex:0];

nslog(@"array1_count = %d, array[0] = %@", count, element);

簡化後的陣列初始化和訪問的做法如下

//nsarray的定義

nsarray *array = @[@"lu", @"da", @"shi", @yes, @123];

int count = (int)[array count];

for (int i = 0; i < count; i++)

2.對字典(nsdictionary)的簡化

也引用我之前部落格中得一段**吧

//不可變字典的初始化

nsdictionary *dictionay = [nsdictionary dictionarywithobjectsandkeys:@"value1", @"key1", @"value2", @"key2", nil];

id value = [dictionay objectforkey:@"key1"];

nslog(@"key1 => %@", value);

我們還可以這樣做

//nsdictionary的定義簡化

nsdictionary *dictionary = @;

nslog(@"key2 => %@", dictionary[@"key2"]);

3.對nsnumber簡化

我們可以這樣做

​    ​    ​    ​把基本型別包裝成物件的便利建構函式

​ ​ ​ ​ ​-(id) initwithchar : (char) value;

​ ​ ​ ​ ​-(id) initwithint : (int) value;

​ ​ ​ ​ ​-(id) initwithfloat : (float) value;

​ ​ ​ ​ ​-(id) initwithbool: (bool) value;

​ ​ ​ ​把基本資料型別包裝成物件的便利構造器

​ ​ ​ ​ ​+(id) numberwithchar : (char) value;

​ ​ ​ ​ ​+(id) numberwithint : (int) value;

​ ​ ​ ​ ​+(id) numberwithfloat : (float) value;

​ ​ ​ ​ ​+(id) numberwithbool : (bool) value;

我們也可以這樣做,說明:在char轉換為nsnumber是存的是ascii碼的形式,c輸出為97

//nsnumber的簡化

nsnumber *a = @123;

nsnumber *b = @11.2;

nsnumber *c = @('a');

nslog(@"a = %@, b = %@, c = %@", a, b, c);

Objective C中的語法糖

問題是陣列引起的那麼就從陣列開始吧 1.一般陣列的初始化和訪問陣列元素是這樣的 在之前的部落格中我是這樣初始化nsarray的 1 nsarray的便利初始化 2 nsarray array1 nsarray alloc initwithobjects aaa bbb ccc nil 3 nsarr...

Python中語法糖及帶參語法糖

在python中,符號常被稱作語法糖 裝飾器 在某函式定義時,用以包裝該函式,以達到擷取,控制該函式的目的。def d f print d.k f 此處保留了傳進來的原函式 f def f x return k x 2 return f 此處不能寫成f x f是函式控制代碼,如果帶 則呼叫,這裡只返...

C 中的語法糖

語法糖,意指那些沒有給計算機語言新增新功能,而只是對人類來說更 sweet 的語法,意在使得程式設計風格更易讀。c 2.0,3.0發布的新特性,除了泛型不是語法糖,其他所有的新特性幾乎都是語法糖。但初學者往往因為不了解這些語法糖,從而在閱讀 的時候,難以理解其真正的運作方式。最著名的莫過於lamda...