函数的值传递//由于函数是对象,所以可以直接把函数参数传递进来function callFun(fun,arg){ //第一个参数就是函数对象 return fun(arg);}function sum(num){ return num +100;}function say(str...
分类:
其他好文 时间:
2014-12-12 18:19:28
阅读次数:
153
参数传递:
参数的传递是通过自动将对象赋值给本地变量来实现的,作为参数被传递的对象从不自动拷贝
在函数内部的参数名的赋值不会影响调用者
改变函数的可变对象参数的值也许会对调用者有影响(实质:不可变对象(如字符串 简单类型 元组)是通过'值'进行传递的,可变对象如字典 列表是通过'指针'进行传递的)
>>> def change(a,b):
a=2
print id(b)
print ...
分类:
编程语言 时间:
2014-12-11 17:20:37
阅读次数:
218
要说明Python中的深浅拷贝,可能要涉及到下面的一系列概念需要简单说明下:
变量-引用-对象(可变对象,不可变对象)切片-拷贝-浅拷贝-深拷贝
【变量-对象-引用】
在Python中一切都是对象,比如说: 3, 3.14, 'Hello', [1,2,3,4],{'a':1}......
甚至连type其本身都是对象,type对象
Python中变量与C/C++/Java中不同,它是指对象的引用
单独赋值: 比如说:
>>> a = 3
在运行a=3后,变量a变成了对象3的一个引用。在内部,变量事...
分类:
编程语言 时间:
2014-12-11 00:17:34
阅读次数:
310
一、静态变量 和 全局变量以及 可变对象(NSMutableArray,NSMutableString)的变量 在加和不加 __block 都会直接引用变量地址。也就意味着 可以修改变量的值。在没有加__block 参数的情况下。以下所有block 均为= 栈block ,且 MRC 环境。 ...
分类:
其他好文 时间:
2014-12-05 18:53:49
阅读次数:
196
一个对象使用copy或mutableCopy方法可以创建对象的副本1.copy需要实现NSCopying协议创建的是不可变副本,如NSString, NSArray, NSDictionary(1)不可变对象调用copy不会产生新的对象,而是返回对象本身,相当于retain,计数器+1属于浅拷贝(2...
分类:
其他好文 时间:
2014-11-24 20:33:32
阅读次数:
168
默认情况下在使用“Set”或“Map”的时候,获得的都是不可变对象。如果需要的是可变版本,需要先写明引用。如果同一个源文件中既要用到可变版本,也要用到不可变版本的集合或映射,方法之一是引用包含了可变版本的包名:scala> import scala.collection.mutableimport ...
分类:
其他好文 时间:
2014-11-23 15:51:26
阅读次数:
183
tips:这篇文章是听了四脚猫的js课程后查的,深入的理解可以参看两篇博客: JavaScript数据类型--值类型和引用类型 JavaScript数据操作--原始值和引用值的操作本质 在传统的观念里,都认为JavaScript函数传递的是引用传递(也称之为指针传递),也有人认为是值传递和引...
分类:
编程语言 时间:
2014-11-18 13:15:13
阅读次数:
217
并发编程的技巧和策略 可变状态是至关重要的。 所有的并发问题都可以归结为如何协调对并发状态的访问。可变状态越少,就越容易确保线程安全性。 尽量将域声明为final 类型,除非需要他们是可变的 不可变对象一定是...
分类:
其他好文 时间:
2014-11-17 19:51:36
阅读次数:
160
本文主要介绍和小结js的构造函数,关联数组的实现方式和使用,及不可变对象和它的实现方式及他们使用过程中要注意的点
分类:
编程语言 时间:
2014-11-16 15:53:22
阅读次数:
263
可变性:指一个对象的值是否可改变。所有Python对象都有三个属性:类型、标识符、值,三个属性几乎总是只读的,在对象的生命周期内它们是不可变的。唯一例外的是对象的值,如果值可变则是可变对象,值不可变就是不可变对象。不可变对象传值,可变对象传引用简单的类型或者“标量”类型,包括整数和其他数字类型,st...
分类:
编程语言 时间:
2014-11-09 13:53:32
阅读次数:
252