字面量

一、字面数值
        需要把整数、浮点数、布尔值封入到对象里。通常情况下会用到如下方法:
        NSNumber *number = [NSNumber numberWithInt:8];
        使用字面量语法后,不仅语法更简洁,还有很多好处。
        NSNumber *number = @(8);
        能够用以NSNumber实例表示的所有数据类型,都可以使用字面量语法。。。

二、字面量数组
        数组的常用创建方法如下:
NSArray *array = [NSArray arrayWithObjects:@"obj1", @"obj2", nil];
而使用字面量语法则是:
NSArray *array = @[@"obj1", @"obj2"];
数组的取下标也有字面量语法:
        NSString *obj = [array objectAtIndex:1];
        使用字面量:
        NSString *obj = array[1];
        不过使用字面量数组时,要注意不要把nil加入到数组中,否则会抛出异常。

三、字面量字典
        常用创建方式如下:
        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"obj1", @"value1", @"obj2", @"value2", nil];
        而使用字面量语法,就比较简洁了。
        NSDictionary *dictionary = @{@"obj1": @"value1",
                                     @"obj1": @"value1"};
        字面量语法清晰表示出了,key和value的一一对应关系。但是与数组一样,字面量字典的value不能为nil,否则会出现异常。

四、字面量可变数组与字典
        对于可变的数组与字典,同样可以使用自变量语法对自变量数组,字典进行操作。
        NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionaryWithDictionary:@{@"obj1": @"value1",
                                                                                                 @"obj1": @"value1"}];
        
        mutableDictionary[@"obj3"] = @"value3";

时间: 2024-09-29 23:14:05

字面量的相关文章

Scala函数字面量

Scala中函数为头等公民,你不仅可以定义一个函数然后调用它,而且你可以写一个未命名的函数字面量,然后可以把它当成一个值传递到其它函数或是赋值给其它变量.下面的例子为一个简单的函数字面量(参考整数字面量,3 为一整数字面量). (x :Int ) => x +1 这是个函数字面量,它的功能为+1. 符好 => 表示这个函数将符号左边的东西(本例为一个整数),转换成符号右边的东西(加1). 函数字面量为一个对象(就像3是个对象),因此如果你愿意的话,可以把这个函数字面量保持在一个变量中.这个变量

Scala函数字面量简化写法

Scala提供了多种方法来简化函数字面量中多余的部分,比如前面例子中filter方法中使用的函数字面量,完整的写法如下: (x :Int ) => x +1 首先可以省略到参数的类型,Scala可以根据上下文推算出参数的类型,函数定义可以简化为: (x) => x +1 这个函数可以进一步去掉参数的括号,这里的括号不起什么作用: x => x +1 Scala 还可以进一步简化,Scala允许使用”占位符”下划线”_”来替代一个或多个参数,只要这个参数值函数定义中只出现一次,Scala编

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

1.字面字符串 摒弃: NSString *someString = [[NSString alloc] initWithString: @"Effective Objective-C 2.0"]; 提倡: NSString *someString = @"Effective Objective-C 2.0"; 2.字面数值 摒弃: NSNumber *someNumber = [NSNumber numberWithInt: 1]; 提倡: NSNumber *i

Literal 字面值 字面量 的理解

Literal 字面值 字面量 Literal, 在程序语言中,指表示某种数据值的符码.如,123 是整数值符码, 3.14 是浮点值符码,abcd 是字串值符码,True, False, 是逻辑值符码,等. Literal 代表的是数据值的本身,区别于“变量”(Variable, 即容纳数据值的 内存址).最直观的理解是,碰到 literal, 你不会想到要往里面写东西:如:123 = "Hello, World!", 象变量 那样.换句话说,Literal 是一个常量(Consta

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'; //

第六讲 Block块语法及Block与数组的排序,ios字面量的使用(源代码上传)

1 #import <Foundation/Foundation.h> 2 3 4 #import "Student.h" 5 6 int c =200; 7 int main(int argc, const char * argv[]) { 8 @autoreleasepool { 9 /* 10 ------------------------------------- 11 定义block变量的四种方法 12 -----------------------------

06-数值型字面量

let 十进制表示10 = 10 let 二进制表示2 = 0b10 let 八进制表示8 = 0o10 let 十六进制表示16 = 0x10 // 科学计数法:类型推断为double类型 let 一百万 = 1e6 let 一百万分之一 = 1e-6 // 字面量的格式化 let 一百万又一百万分之一 = 1_000_000.000_001

js对象字面量属性间相互访问的问题 和 这个问题与执行环境的关系

对象字面量属性间无法相互访问的问题: 我曾经在定义一个对象时, 并出于复用性的考虑试图复用某些属性: // test 1 var person = { firstName : "Bill", lastName : "Gates", fullName : firstName + " " + lastName // 这里报错 } alert(person.firstName); alert(person.lastName); alert(person

Swift语言指南(五)--数字字面量和数字类型转换

数字字面量 整数字面量写法如下: · 十进制数,无前缀 · 二进制数,以 0b 为前缀 · 八进制数,以 0o 为前缀 · 十六进制数,以 0x 为前缀 下面所有整数的十进制值为 17 : 1 let decimalInteger = 17 2 let binaryInteger = 0b10001 // 17 二进制标识 3 let octalInteger = 0o21 // 17 八进制标识 4 let hexadecimalInteger = 0x11 // 17 十六进制标识 浮点数字

C语言复合字面量的使用

C99添加的特性,复合字面量(composite literal).一旦熟悉并使用,便会体会到简洁强大的表达. 所谓字面量就是固定数值的表示.数值和字符串类型都有字面量的表达.如: // 100, 1.23f, "literral" 都是字面量 int x = 100; float y = 1.23f; char* s = "literral"; 可看到字面构建的同一时候就能够复制给变量使用.既然是固定数值,那么在初始化的时候就能够构建. 那么复合字面量是几个意思的