这一章节我们来讨论一下参数与共享引用
承接上一章节所说的参数的传递是通过自动将对象赋值给本地变量名来实现的,其本质就是复制引用,传递对象
1.我们下面以传递不可变对象为例子:
>>> b=1
>>> def test(x):
print(x)
print(id(x))
x=2
print(x)
print(id(x))
>>> test(b)
1
497734096
2
...
分类:
编程语言 时间:
2015-09-16 09:47:40
阅读次数:
205
1,什么是不可变String? String对象是不可变的。当试图修改String值的时候,实际上都是创建一个全新的String对象,该对象包含修改后字符串的值,而最初的对象则没有发生改变。package yfy;public class Test { public static void m...
分类:
其他好文 时间:
2015-09-15 14:36:06
阅读次数:
128
可以证明,字符串操作是计算机程序设计中最常见的行为。String:不可变的对象,对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原String对象GC回收。StringBuffer 字符串变量(线程安全),适用于多线程程序中,保证同步性...
分类:
编程语言 时间:
2015-09-15 10:53:01
阅读次数:
139
Foundation框架—集合一、NSArray和NSMutableArray(一)NSArray不可变数组(1)NSArray的基本介绍NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。C语言数组有一个缺点即数组中只能存放同种数据类型的元素。OC数组只能存放O...
分类:
其他好文 时间:
2015-09-14 10:36:59
阅读次数:
169
finalcaseclass::[B](privatevarhd:B,private[scala]vartl:List[B])extendsList[B]tl通过private限制访问的目的是保证tl的不可变性,这样在构建头元素hd不同的而后面list相同的新的list的时候就可以直接指向tl,高效。这里既保证了函数式编程,又能高效的创建新的对象。兴趣的..
分类:
其他好文 时间:
2015-09-12 01:00:51
阅读次数:
125
final成员变量当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。其初始化可以在三个地方,一是其定义处,也就是说在final变量...
分类:
编程语言 时间:
2015-09-11 19:12:20
阅读次数:
184
NSDictionary不可变的字典创建字典的方法 // 创建字典的方式 NSDictionary *dy = [NSDictionary dictionaryWithObject:@"a"forKey:@"b"]; NSDictionary *dy1 = ...
分类:
其他好文 时间:
2015-09-11 01:27:07
阅读次数:
144
给不可变数组设置新的key ????
????????????NSDictionary?*dict=@{@"key1":@0};
????????????[dict?setValue:@5?forKey:@"key1"];
????????????NSLog(@"dict1?==%...
分类:
其他好文 时间:
2015-09-10 21:20:47
阅读次数:
180
http://rmingwang.com/python-tuple-list-dict-set.html1. 元组 可以包含不同类型的对象,但是是不可变的,不可以在增减元素,用()来定义.元组的操作: tuple(obj),切片,in,for in,del,cmp,len,max,mi...
分类:
编程语言 时间:
2015-09-10 17:23:35
阅读次数:
261
1、函数式编程的定义与由来 如果程序中的函数仅接受输入并产生输出,即输出只依赖于输入,数据不可变,避免保存程序状态,那么就称为函数式编程(Functional Programming,简称FP,又称泛函编程)。 这种风格也称声...
分类:
编程语言 时间:
2015-09-09 06:21:10
阅读次数:
246