目前想到的几组:
从英语惯用法、在程序设计中的本质概念两个角度来看,它们的区别是?
1
dier 2020-05-22 17:55:15 +08:00
说个我理解的 buffer 和 cache
|
2
Chowe 2020-05-22 17:57:38 +08:00 via iPhone
safety & security
|
3
dier 2020-05-22 17:58:48 +08:00 1
呃,还没说完就发出去了;
buffer 在计算机中常用于数据从内存到硬盘的缓冲,防止硬盘写不过来;因为内存读写比硬盘快太多 cache 是用来提交内存到 CPU 交换效率的缓存;因为 CPU 计算比内存读写更快 这是我的一些理解 |
4
jimmy2010 2020-05-22 18:01:29 +08:00 via Android
我也有一个:
arm64 和 aarch64 ? |
5
dioxide OP @dier, 这样看来,buffer 似乎常用在在快慢设备 /模块中,做数据的批量同步, 最终表现为时间换空间的特性; 而 cache 最终似乎都表现为空间换时间的特性.
|
6
chendy 2020-05-22 18:11:04 +08:00 1
buffer vs cache,缓“冲” vs 缓“存”,这里说的挺好的 https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/integration.html#cache-strategies
|
8
no1xsyzy 2020-05-22 18:27:51 +08:00 8
copy 是指数据的副本,clone 是指功能上一致的副本(底层可以任意打乱)也允许一定程度的改变,而 duplicate 含义比较多,考虑在比较词义,就采用近义的那个使动用法,强调了数据同时存在的副本,和其中一者的非必要性(值得注意的是 redundancy,表示同时存在的副本具有必要性)。除了 duplicate 强调同时存在外 copy 和 clone 没有本质区别,实际上混用影响不大。
invoke 是请求,可以拒绝,call 强调子程,apply 强调函数。 iteratee 是被迭代的数据,iterator 是迭代器,迭代器包含被迭代的数据或者能够构造对被迭代数据的引用。 buffer 是时间上的移动平均或者逆移动平均; cache 是空间上的捷径。 |
11
newtype0092 2020-05-22 18:38:42 +08:00
很多这种东西都是碰巧来的吧。
大部分编程大牛都不是语言学家,有时候就是顺手选个又短又好记还带点关系的词。 很多关键词在不同编程语言里含义都不是完全相同,用英语用法去分析在程序中的概念感觉就像用中文给英语单词注音的助记法一样:surly(暴躁的)-> 失礼 这种感觉。。。 |
12
murmur 2020-05-22 18:40:58 +08:00
call 和 apply,这不就 js 的两种调用方法么,只不过参数不同
|
13
dioxide OP @newtype0092, 所以才从英语惯用法、在程序设计中的本质概念两个角度来区分理解啊. 至于不同语言的语义不同,那只能说尽量求同存异的理解了.
|
14
WeKeey 2020-05-22 19:05:32 +08:00
string
|
15
Android2MCU 2020-05-22 19:50:44 +08:00 via iPhone
为什么不是 git copy
|
16
shyangs 2020-05-22 20:01:20 +08:00
信息和消息
有什麼區別 |
17
dioxide OP @Android2MCU, 这种可能仅仅因为作者就是选了这个词. 另外,我总体上感觉,clone 通常比 copy 的动作要大. 底层做到工作要多
|
19
Jony4Fun 2020-05-22 20:06:07 +08:00 1
感觉英文还是要放在具体的语境 Context 中才能用中文来解释。
个人认为 copy 和 clone 就是浅拷贝和深拷贝 buffer 一般指内存中的一段空间,用来进行数据读写的,比如 read(fd, buffer), write(fd, buffer);而 cache 主要是将部分常用的数据放在一个比原介质更快的介质中,达到加速查询的目的。 |
20
shyangs 2020-05-22 20:12:02 +08:00
首选项
的『首』什麼意思, 首選項和選項有什麼區別. |
22
dioxide OP @首选项, “首”应该当“偏好 /个性化”来理解, 就是优先级在默认值之上的选项.
|
23
GeruzoniAnsasu 2020-05-22 20:18:06 +08:00 via Android 2
copy 创造一个跟以前一样的实体
clone copy to new and likely for modifying dupplicate 把原来的实体变成两个 call 执行任意形式的子过程并期待返回 invoke 代理给某个东西执行动作然后期待代理给我返回 apply 给一个对象应用一个变换器,尤其是函数。因此 apply 的语境相当函数式 iterator 用来访问集合的东西 -ee 被遍历的东西 buffer 存任意中间数据的地方 cache 用于加快访问而特意放置中间数据的地方 safety 开车撞车死不了 security 开车不会被劫持方向盘 |
24
kojirou 2020-05-22 20:31:54 +08:00
系统 /语言不一样,差别都很大啊
|
25
GeruzoniAnsasu 2020-05-22 20:32:41 +08:00 1
补充一下
copy 的语境,被 copy 的东西就是原来的,完全没变,而且 copy 的时候并不一定产生了结果( copy - paste ) duplicate 后,你一定得到了两份东西,是有结果的,而且这两份东西中是否一定有一份是原来的东西,并不一定,只是长得一样 比如 file copied,此时你并不预期 copy 成了哪个实体,也许会写到后面想起来再说的什么路径里去 但 file dupplicated 此时已经有两个一样的文件同时存在 把某个数据 duplicate 一下发往两个地方,很可能两个副本都 不是之前那份数据的引用 把某个数据 copy 到新地方,那肯定有一个是旧的引用本身 call invoke apply 区分得还是比较清楚的,直接调用叫 call,委托调用叫 invoke,把固定好的变换作用在不同对象上叫 apply -or/-er 和 -ee 是主被动关系,这个不应该搞混才对 cache 有一个建议译名叫“快取”,很好地体现了这个词的原本定义 safety 和 security 并不好直接解释词义,开车这个语境比较容易分辨区别 |
26
xcstream 2020-05-22 21:03:41 +08:00 1
copy 抄写文字 复印 广义的复制
clone 复制一个一样的比较复杂物体,生物体之类, 一样的基因 duplicate 复制一个完全一样的东西 ,强调完全一样 call 打电话叫人做事 invoke 激发某个功能 apply 应用某方法 iteratee 被迭代是数据 iterator 迭代器 buffer 写的缓冲 cache 重复的读取的缓存 |
27
meteor957 2020-05-22 21:14:42 +08:00
dump
|
28
namelosw 2020-05-22 22:38:27 +08:00 1
copy 、clone 、duplicate:
区别很小,不过 duplicate 有时候指原地已经粘贴了,copy,clone 可能复制一份但还没决定放哪 call 、invoke 、apply: 区别很小 call 一般指调用,比如 f(1,2,3)一般可以叫做 call apply 指应用,一般 apply(f, [1,2,3]),比较强调参数列表 不过有的语言也有个专门的 call Invoke 和 call 没啥区别 iteratee 、iterator: 主动被动,跟 employer employee 一样 buffer 、cache: buffer 是缓冲,就是想写的地方慢,不想让那个设备拖慢所有东西,所以先写到 buffer 让 buffer 慢慢渗进去,有点像沙漏。但是计算还是该几遍还几遍 cache 是缓存了结果,减少了计算次数,类似背小九九 |