字面量的概念

作者: 不会打滚儿的狮子 | 来源:发表于2016-08-22 00:12 被阅读52次
字面量的概念!!

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

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

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

请参考:[ 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];

相关文章

  • 字面量的概念

    前几天有一位朋友在找工作的时候面试管有问过他一个这样的问题: 请简单讲述一下字面量是什么??? 在这里给大家简...

  • python字面量输出方式

    概念 字面量(literal)是以变量或者常量给出的原始数据。 类型 数值型字符型布尔型字面量集合:列表、元组、字...

  • 字面量

    字面量: 1、数字字面量: 1.1、整数: 10进制:普通数字就是十进制 8进制:以0开头(...

  • 字面量

  • 字面量

    字面量 常见字面量的默认类型 可以通过typealias修改字面量的默认类型 swift自带类型之所以能够通过字面...

  • 字面量

    字面量(Literal) 上面代码中的10、false、"Jack"就是字面量 常见字面量的默认类型 public...

  • 字面量

    在读《编写高质量iOS与OS X代码的52个有效方法》这本书时,才发现了一个自己一直遗漏的问题,NSArr...

  • Scala函数定义

    函数字面量 常说的字面量有:整型字面量 val i = 123浮点型字面量 val i = 3.14布尔型字面量 ...

  • JavaForAndroid-03

    一、字面量int i = 0; //0就是字面量数值型变量字面量:1.整数字面量为整型(int)2.小数字面量为双...

  • [C++11阅读][2-4-1]用户自定义字面量

    字面量 C/C++一直有字面量这个概念,比如32L是个long、19.0f是float、0x32是16进制整数。 ...

网友评论

    本文标题:字面量的概念

    本文链接:https://www.haomeiwen.com/subject/igpwsttx.html