编程语言中的字面量在Objective-C中的举例

关于计算机编程语言中的字面量的介绍可参考:http://baike.baidu.com/view/1208327.htm?fr=aladdin

下面就介绍Objective-C中的各种常用字面量:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    /** 以下为基本类型字面量举例 */
    int a = 10;                 // 10为一个整型字面量
    float f = 0.5f;             // 0.5f为一个单精度浮点数字面量
    double d = 3.14;            // 3.14为一个双精度浮点数字面量
    long l = 100000L;           // 100000L为一个长整型字面量
    char c = 'c';               // 'c'为一个字符类型字面量
    const char *s = "Hello";    // "Hello"为一个C字符串字面量
    
    /** 下面是复合类型字面量举例 */
    struct foo { int a, b; };
    
    // (struct foo){.a = 10, .b = 20}为结构体foo的复合类型字面量
    struct foo fooVar = (struct foo){.a = 10, .b = 20};
    
    // (int[]){1, 2, 3, 4}为一个int[4]数组的复合类型字面量
    int *arr = (int[]){1, 2, 3, 4};
    
    // @"你好,世界"为NSString字符串对象引用类型的字面量
    NSString *str = @"你好,世界";

    // @10, @(10 + 0.5)均为NSNumber对象引用类型的字面量
    NSNumber *intNum = @10;
    NSNumber *doubleNum = @(10 + 0.5);
    
    // @[@0, @1, @2]为一个NSArray对象类型的字面量;@0、@1、@2都是NSNumber对象类型的字面量
    NSArray *array = @[@0, @1, @2];
}

上述代码可在LLVM Clang3.4或更高版本以及Apple LLVM5.0或更高版本中通过编译。