字面量的概念

字面量的概念!!

前几天有一位朋友在找工作的时候面试管有问过他一个这样的问题:

请简单讲述一下字面量是什么???     在这里给大家简单讲述一下,希望有利于帮到大家!

字面量是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,所谓右值是指等号右边的值,

请参考:[ http://www.jianshu.com/p/44ff0e285332 ] 装箱和拆箱,两者有相似之处

如:int a=123这里的a为左值,123为右值。

常量和变量都属于变量,只不过常量是赋过值后不能再改变的变量,而普通的变量可以再进行赋值操作

使用字面量语法可以缩减代码长度, 使其更为易读

//少用这种方式

NSNumber *someNumber0 = [NSNumber numberWithInt:1];

//多用字面数值

NSString *someString = @"Effective objectivity-C 2.0";

NSNumber *someNumber1 = @1;

NSNumber *floatNumber = @2.5f;

NSNumber *doubleNumber = @3.14159;

NSNumber *boolNumber = @YES;

NSNumber *charNumber = @'a';

//字面量语法也适用于下述表达式

int x = 5;

int y = 6;

NSNumber *expressionNumber = @(x * y);

//普通创建数组的方式

NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dog", @"mouse", @"badger", nil];

//使用

NSString *dog = [animals objectAtIndex:1];

//创建字面量数组

NSArray *animals1 = @[@"cat", @"dog", @"mouse", @"badger"];

//使用

NSString *cat = animals1[0];

//如:

id object1 = @1;

id object2 = nil;

id object3 = @3;

//此数组中只有object1,因为arrayWithObjects会依次处理各个参数,直到发现nil为止

NSArray *arrayA = [NSArray arrayWithObjects:object1, object2, object3, nil];

//而object2位nil,会引发异常,向数组中插入nil通常说明程序有错,通过异常可以更快的发现这个错误

//使用字面量数组比上面的方式更安全

NSArray *arrayB = @[object1, object2, object3];

NSLog(@"%@", arrayA[1]);

NSLog(@"%@",arrayB[1]);

//字典

NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:

@"Matt", @"firstName",

@"Galloway", @"lastName",

[NSNumber numberWithInt:25], @"age",

nil];

NSString *lastName = [personData objectForKey:@"lastName"];

//字面量字典

NSDictionary *personData2 = @{@"firstName" : @"Matt",

@"lastName" : @"Galloway",

@"age" : @25};

NSString *lastName2 = personData2[@"lastName"];

//可变数组字典

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"a", @"b", @"c", nil];

NSMutableDictionary *mutabledictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:

@"Matt", @"firstName",

@"Galloway", @"lastName",

[NSNumber numberWithInt:25], @"age",

nil];

//可以这样操作

[mutableArray replaceObjectAtIndex:1 withObject:@"h"];

[mutabledictionary setObject:@"jeck" forKey:@"lastName"];

//也可以这样来操作

mutableArray[1] = @"h";

mutabledictionary[@"lastName"] = @"jeck";

//使用字面量语法创建出来的字符串 数组 字典对象都是不可变的(immutable)若想要可变版本的对象,则需要复制一份

NSMutableArray *mutable = [@[@1, @2, @3, @4] mutableCopy];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容