作者sbrhsieh (十年一梦)
看板java
标题Re: [问题] 将callback转型成原本的class
时间Mon Oct 14 23:09:24 2013
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 118.168.127.139
: 推 PsMonkey:其实... 用中文感觉很怪...... 10/14 21:16
: → adrianshum:我个人是宁愿用 pointer 一词。reference 常有不清混淆 10/14 22:33
: → adrianshum:还有其实 Java 的 ref 根本就是概念上的 pointer,只是 10/14 22:34
: → adrianshum:没有像C/C++那种 pointer arithematics 而己 10/14 22:34
: → Chikei:ptr +1,用ref常会有人问call by ??跟参照到哪个实体的问题 10/14 22:59
主要是看个人对 pointer 的定义。
我个人认为能作 pointer arithmetic 的才叫 pointer。
以下面的 C code 来说:
int a = 87;
int *p = &a;
printf("p=%d\n", *p);
*p 这个 expression 中,* 在此的作用一般称为 dereference,Java 中的
non-primitive value 唯一能作的事(除了 assignment)就是 dereference,
那这种值称为 reference value 不是很适合吗?
*array element access/field access/method invocation 都隐含 dereference
另,我自己倾向把直接指向你要存取的数据所在的地方(offset 不管)这种称
pointer,reference 则是你只知道可透过他来触碰目标数据,中间有多少
indirection 不晓得。故你可以说 HANDLE 是一种 reference value,pointer
value 是一种 reference value,但是 pointer/HANDLE 都是更 specific 的
东西,把 Java ref value 归为 pointer 不是很恰当(Java ref value 在实作
上比较接近 HANDLE,但 Java platform 就是希望 programmer 不要去考虑
实作的细节)。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.239.194
※ 编辑: sbrhsieh 来自: 218.173.239.194 (10/14 23:21)