美文网首页
第3条:多用字面量语法,少用与之等价的方法

第3条:多用字面量语法,少用与之等价的方法

作者: MrSYLong | 来源:发表于2018-07-29 22:03 被阅读6次

    字符串字面量

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

    字面数值

    NSNumber *intNumber = @1;
    NSNumber *floatNumber = @2.5f;
    NSNumber *doubleNumber = @3.1415926;
    NSNumber *boolNumber = @YES;
    NSNumber *charNumber = @'a';
    
    int x = 5;
    float y = 3.14;
    NSNumber *expressionNumber = @(x * y);
    

    字面量数组

    NSArray *animals = @[@"cat",@"dog",@"mouse",@"panda",];
    NSString *panda = animals[3];
    
    说明:
    字面量语法实际是一种“语法糖”,其效果等于先创建一个数组,然后把方括号内的所有对象都加到这个数组中。
    

    字面量字典

    NSDictionary *personData = @{@"firstName":@"Tom",@"lastName":@"Galloway",@"age":@18};
    NSString *lastName = personData[@"lastName"];
    

    可变数组与字典

    // 通过下标修改其中的元素值
    mutableArray[1] = @"monkey";
    mutableDic[@"lastName"] = @"SYL";
    

    局限性
    除字符串以外,所创建出来的对象必须属于Foundation框架才行。
    如果自定义了这些类的子类,则无法用字面量语法创建其对象。
    创建自定义子类的实例,必须采用“非字面量语法”。

    使用字面量语法创建的字符串、数组、字典对象都是不可变的,要可变版本对象,需要复制一份:

    NSMutableArray *mutable = @[@1, @2, @3].mutableCopy;
    
    说明:
    上面会多调用一个方法,而且还要再创建一个对象,但字面量语法的好处还是多于缺点。
    

    相关文章

      网友评论

          本文标题:第3条:多用字面量语法,少用与之等价的方法

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