谁能给我说道说道这些"术语"区别?

2020-05-22 17:51:55 +08:00
 dioxide

目前想到的几组:

  1. copy 、clone 、duplicate
  2. call 、invoke 、apply
  3. iteratee 、iterator
  4. buffer 、cache

从英语惯用法、在程序设计中的本质概念两个角度来看,它们的区别是?

4292 次点击
所在节点    程序员
28 条回复
dioxide
2020-05-22 20:12:20 +08:00
@Jony4Fun, 理解一致, 我发现 buffer 也可以说是进行数据操作的“粒度”或者说“单位”.
dioxide
2020-05-22 20:13:36 +08:00
@首选项, “首”应该当“偏好 /个性化”来理解, 就是优先级在默认值之上的选项.
GeruzoniAnsasu
2020-05-22 20:18:06 +08:00
copy 创造一个跟以前一样的实体
clone copy to new and likely for modifying
dupplicate 把原来的实体变成两个

call 执行任意形式的子过程并期待返回
invoke 代理给某个东西执行动作然后期待代理给我返回
apply 给一个对象应用一个变换器,尤其是函数。因此 apply 的语境相当函数式

iterator 用来访问集合的东西
-ee 被遍历的东西


buffer 存任意中间数据的地方
cache 用于加快访问而特意放置中间数据的地方


safety 开车撞车死不了
security 开车不会被劫持方向盘
kojirou
2020-05-22 20:31:54 +08:00
系统 /语言不一样,差别都很大啊
GeruzoniAnsasu
2020-05-22 20:32:41 +08:00
补充一下
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 并不好直接解释词义,开车这个语境比较容易分辨区别
xcstream
2020-05-22 21:03:41 +08:00
copy 抄写文字 复印 广义的复制
clone 复制一个一样的比较复杂物体,生物体之类, 一样的基因
duplicate 复制一个完全一样的东西 ,强调完全一样

call 打电话叫人做事
invoke 激发某个功能
apply 应用某方法

iteratee 被迭代是数据
iterator 迭代器

buffer 写的缓冲
cache 重复的读取的缓存
meteor957
2020-05-22 21:14:42 +08:00
dump
namelosw
2020-05-22 22:38:27 +08:00
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 是缓存了结果,减少了计算次数,类似背小九九

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/674469

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX