谁能给我说道说道这些”术语”区别?
目前想到的几组:
- copy 、clone 、duplicate
- call 、invoke 、apply
- iteratee 、iterator
- buffer 、cache
从英语惯用法、在程序设计中的本质概念两个角度来看,它们的区别是?
目前想到的几组:
从英语惯用法、在程序设计中的本质概念两个角度来看,它们的区别是?
call 执行任意形式的子过程并期待返回
invoke 代理给某个东西执行动作然后期待代理给我返回
apply 给一个对象应用一个变换器,尤其是函数。因此 apply 的语境相当函数式
iterator 用来访问集合的东西
-ee 被遍历的东西
buffer 存任意中间数据的地方
cache 用于加快访问而特意放置中间数据的地方
safety 开车撞车死不了
security 开车不会被劫持方向盘
比如 file copied,此时你并不预期 copy 成了哪个实体,也许会写到后面想起来再说的什么路径里去
但 file dupplicated 此时已经有两个一样的文件同时存在
把某个数据 duplicate 一下发往两个地方,很可能两个副本都 不是之前那份数据的引用
把某个数据 copy 到新地方,那肯定有一个是旧的引用本身
call invoke apply 区分得还是比较清楚的,直接调用叫 call,委托调用叫 invoke,把固定好的变换作用在不同对象上叫 apply
-or/-er 和 -ee 是主被动关系,这个不应该搞混才对
cache 有一个建议译名叫“快取”,很好地体现了这个词的原本定义
safety 和 security 并不好直接解释词义,开车这个语境比较容易分辨区别
call 打电话叫人做事
invoke 激发某个功能
apply 应用某方法
iteratee 被迭代是数据
iterator 迭代器
buffer 写的缓冲
cache 重复的读取的缓存
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 是缓存了结果,减少了计算次数,类似背小九九