1.4.2 理解使用不可变性的代码
在前面介绍函数式风格的好处时,我们讨论过不可变性(immutability)。我们使用的示例是一个带边框的椭圆,但是代码的具体行为并不清楚。当我们用不可变对象重写了代码以后,它就变得更容易理解。在后面的章节中,我们会回到这个主题并更详细地讨论。此示例的目的是显示在实践中不可变的对象的表现。
再次强调,如果你在此时没能全部掌握,也不要担心。想象一下,我们...
分类:
其他好文 时间:
2014-07-26 15:01:26
阅读次数:
151
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同...
分类:
编程语言 时间:
2014-07-26 14:07:45
阅读次数:
192
String String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧...
分类:
其他好文 时间:
2014-07-26 13:58:25
阅读次数:
148
一、dictionary 1、字典的形式:a={‘key’:value,‘key1’:value,................} 2、字典的的key不能重复,是一个不可变对象 3、字典的的查找和添加的速度快,但是占的存储空间多 5、当查找的内容中,字典中不存在关键字时,则会发生错误有两种判定方法...
分类:
编程语言 时间:
2014-07-23 12:33:56
阅读次数:
200
Xcode 6 beta3 对Swift 自从公布以来的第一次比较大的更新,尤其是对数组的更新,主要体现在几个方面:1、数组被重写,现在声明为 let 的数组为不可变数组,声明为var 的是可变的2、声明数组和字典的语法糖也作了修改, 原来声明数组:Int[] 改为 [Int] ,同样的, 字典声明...
分类:
其他好文 时间:
2014-07-23 12:30:37
阅读次数:
219
概念:NSString 类定义了管理不可变字符串的程序接口。一个不可变的字符串就是一旦定以后随后就不可以在被改变。NSString 代表一组Unicode数组,换句话说,一个文本字符串。NSString的可变子类是NSMutableString。NSString有两个原始的方法:length和cha...
分类:
其他好文 时间:
2014-07-22 00:25:36
阅读次数:
188
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同...
分类:
其他好文 时间:
2014-07-22 00:20:33
阅读次数:
186
1、基本类型Stringvar str = "helloworld";要记住:保存的是Unicode字符,一旦创建便不可变2、引用类型Stringvar strObj = new String("hello world");要点:字符方法: alert (strObj.charAt(0)); // ...
分类:
编程语言 时间:
2014-07-21 23:30:20
阅读次数:
305
不可变集合不接受null值。创建:ImmutableSet.copyOf(set);ImmutableMap.of(“a”, 1, “b”, 2);public static final ImmutableSet GOOGLE_COLORS = ImmutableSet.builder...
分类:
其他好文 时间:
2014-07-20 22:02:22
阅读次数:
249
String、StringBuffer和StringBuilder的区别
1、String类是不可变类,即一旦一个String对象被创建后,包含这个对象中的字符序列是不可改变的
2、在字符串拼接的过程中,String的效率要比StringBuffer和StringBuilder的低
3、StringBuilder性能比StringBuffer的强
4、Str...
分类:
其他好文 时间:
2014-07-20 10:22:19
阅读次数:
184