1.4.2 理解使用不可变性的代码
在前面介绍函数式风格的好处时,我们讨论过不可变性(immutability)。我们使用的示例是一个带边框的椭圆,但是代码的具体行为并不清楚。当我们用不可变对象重写了代码以后,它就变得更容易理解。在后面的章节中,我们会回到这个主题并更详细地讨论。此示例的目的是显示在实践中不可变的对象的表现。
再次强调,如果你在此时没能全部掌握,也不要担心。想象一下,我们...
分类:
其他好文 时间:
2014-07-26 15:01:26
阅读次数:
151
一、dictionary 1、字典的形式:a={‘key’:value,‘key1’:value,................} 2、字典的的key不能重复,是一个不可变对象 3、字典的的查找和添加的速度快,但是占的存储空间多 5、当查找的内容中,字典中不存在关键字时,则会发生错误有两种判定方法...
分类:
编程语言 时间:
2014-07-23 12:33:56
阅读次数:
200
1. 函数参数传递方式之一:值传递
(1)值传递的一个错误认识
先看如下的一个问题:
void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数 */
{
int tmp;
tmp = x;
x= y;
y= tmp;
printf("x = %d, y = %d.\n", x, y);
}
问:...
分类:
其他好文 时间:
2014-07-21 11:24:44
阅读次数:
264
第八章数组
本章原书作者的意图主要是跟指针进行比较,两者的共同点以及区别。因为小弟我的汇编基础为0,因此8.1.4指针的效率这一块我实在是不明白。
本科时候学的数组绝对不会像现在一样学数组,所以好好学数组!
它和指针在作为函数参数传递时是不是可以混用?
声明数组和声明指针在编译过程中是否相同?
形参可以省略几个下标,为什么?
char *a = "hello";和char a...
分类:
其他好文 时间:
2014-07-19 02:12:46
阅读次数:
155
1. “Registry”设计模式在OpenCart中,Registry是整个系统的信息中枢。Registry是一个单例(Singleton),在index.php起始页面中,首先作为构造函数参数传递给所要用到的类创建类实例,并随之将这个类实例设置到这个“注册表”中,这个注册表就像是一个共享的数据总...
分类:
其他好文 时间:
2014-07-12 00:56:17
阅读次数:
283
不可变对象和类由不可变类创建的对象就是不可变对象,要使一个类成为不可变的,它必须满足下面的需求:所有数据域都是私有的没有修改器方法没有一个访问器的方法,它会返回一个指向可变数据域的引用看下面的代码:public class Main{ public static void main(Strin...
分类:
编程语言 时间:
2014-07-11 09:27:46
阅读次数:
288
在javascript中,我们有时候要使用delete删除对象。但是,对于delete的一些细节我们未必尽知。昨天,看到kangax分析delete的文章,获益匪浅。本文将文章的精华部分翻译出来,与各位分享。原理 代码类型 执行上下文 激活对象/可变对象 属性特性 内置对象和DontDelete 未...
分类:
编程语言 时间:
2014-07-02 14:05:34
阅读次数:
311
Functional ObjectAdvantages and Disadvantages of Immutable ObjectAdv 1. 不可变对象更具容易被推断出来,因为它不会随着时间的变化而造成值的变化。Adv 2. 不可变对象可以自动地传递不会发生变化,而传递可变对象的话,需要首先对可变...
分类:
其他好文 时间:
2014-06-27 13:55:22
阅读次数:
187
C#中的lock语句是怎么回事,有什么作用?C#中的lock语句将lock中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问。他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作,防止出现对象被多次改变情况。注意的地方有:lock对象必须是一个不可变对象,否则无法阻止另一个线程进入...
分类:
其他好文 时间:
2014-06-26 00:58:50
阅读次数:
354
这篇文章主要介绍了Python程序员代码编写时应该避免的17个“坑”,也可以说成Python程序员代码编写时应该避免的17个问题,需要的朋友可以参考下
一、不要使用可变对象作为函数默认值
复制代码代码如下:
In [1]: def append_to_list(value, def_list=[]):
...: def_list.append(va...
分类:
编程语言 时间:
2014-06-24 23:35:15
阅读次数:
302