python中dict类型的key值要求是不可变类型,通常来说,我们一般采用int或者str类型来作为字典的key,但是在某些场景中,会造成一定的麻烦。如我们有一个处理http Request的规则类名为Rule,其定义如下,它由一个Request path和其支持的Request methods数...
分类:
编程语言 时间:
2015-03-03 13:19:17
阅读次数:
5358
相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都...
分类:
编程语言 时间:
2015-02-04 11:14:46
阅读次数:
161
python的基本数据类型(标准类型):
数字类型、字符类型、元祖和不可变集合是不可变类型,只能是重新创建对象,是可哈希的。
列表、字典和可变集合是可变类型,可以重新赋值,是不可哈希的。...
分类:
编程语言 时间:
2015-01-30 09:06:58
阅读次数:
428
实际上元组是跟列表非常相近的另一种容器类型.元组和列表看起来不同的一点是元组用的是圆括号而列表用的是方括号。而功能上,元组和列表相比有一个很重要的区别,元组是一种不可变类型。正因为这个原因,元组...
分类:
编程语言 时间:
2015-01-28 14:52:20
阅读次数:
217
不可变类,即实例不能被修改的类,实例中包含的所有信息在对象的生命周期内固定不变。常见的比如String、基本类型的封装类、BigDecimal、BigInteger。 相对与可变类,不可变更易于设计、实现、使用,且更稳定(less prone to error)更安全。比如,不可变类本质上就是线程....
分类:
编程语言 时间:
2015-01-26 22:19:33
阅读次数:
195
11.1.2.2 使用不可变数据结构
为了演示了以不可变风格,写相同的代码,但不一定必须使用函数式列表;即使使用标准的 List 类型,我们一样能够避免修改集合。然而,不幸的是,要确保不意外修改列表,可能很难。
处理不允许修改的类型,有更好的方法。可以使用真正不可变类型,比如,第三章的FuncList,或者 .NET Framework 中的 ReadOnlyCollection;即使使...
分类:
其他好文 时间:
2015-01-07 16:56:10
阅读次数:
132
caller 什么意思?callable(obj) if obj为代码 or 函数static method 与 class method 的区别对象可变类、不可变类有哪些可以做key键的类型、可hash的类型有hash()函数的类struct干嘛的?functools用法itertools用...
分类:
编程语言 时间:
2015-01-05 20:15:20
阅读次数:
231
1. java不可变性初探我们先看下面一个例子:代码如下: 1 import java.math.BigInteger; 2 public class BigProblem { 3 public static void main(String[ ] args)...
分类:
编程语言 时间:
2015-01-03 17:17:01
阅读次数:
257
9.4.1 函数式和命令式类
在类或者类的构造函数的参数值中的 let 绑定,就像我们在其他 F# 代码中看到的 let 绑定一样,也是不可变值;此外,使用 member 关键字声明的属性,创建的是只读属性(只有 getter)。因此,如果类只引用其他不可变类型的值,那么,类也不可变。
比方说,在前面的例子中,我们要允许改变客户的收入,可以有两种方式:
■以纯函数式风格,对象将返回一...
分类:
其他好文 时间:
2014-12-12 11:42:13
阅读次数:
146
9.3.1 使用 .NET 集合
到目前为止,虽然我们主要是用F# 内置的列表类型来保存数据集合,在某些情况下,使用其他的 .NET 类型,比如,System.Collections.Generic 命名空间下的 Dictionary 类,也是有用的。这种类型对需要根据键进行快速访问,特别有用,因为提供了类似功能的不可变类型(比如,F# 库中的 Map),效率低下。
需要注意的是,Dic...
分类:
Web程序 时间:
2014-12-11 15:59:47
阅读次数:
152