|
|
1
110
一
thunk可以有效地实现许多有用的东西
|
|
|
2
77
thunk这个词在计算机科学中至少有三个相关的含义。“thunk”可能是:
我经常在第三个上下文中看到它的用法。 |
|
|
3
17
摘自: http://en.wikipedia.org/wiki/Thunk#Thunks_in_object-oriented_programming |
|
|
4
16
thunk一词最初指的是 Royal Radar Establishment 在其 Algol60 编译器。一般来说,它指的是在引用一个明显静态的对象时诱导动态行为的任何方法。这个术语是由BrianWichmann发明的,当他被要求解释pass-by-name时,他说:“好吧,你出去从内存中加载值,然后突然——砰——你正在评估一个表达式。” Thunk已经被安装在硬件上(参见kdf9,Burroughs主机)。有几种方法可以在软件中实现它们,都是机器、语言和编译器特有的。 这个术语已经被泛化为超越pass-by-name,包括任何一种情况,在这种情况下,一个表面上或名义上的静态数据引用会引起动态行为。相关术语包括“蹦床”和“未来”。 |
|
|
5
7
使用上有相当大的差异。几乎是普遍的,thunk是一个非常小和简单的函数(至少在概念上)。它通常是某种适配器,为您提供与某个或其他对象(某些数据、另一个函数等)的正确接口,但至少被视为只做了很少的其他工作。 它几乎是一种句法糖的形式,只是(至少和通常使用的一样)句法糖应该使事物看起来像人类读者想看到的那样,而thunk则是让事物看起来像编译器想看到的那样。 |
|
|
6
5
我要查一下,但我想 雷鸣 是32位处理器用来运行旧的16位代码的进程。 我曾经用它来比喻你如何限制你说话的速度,以及在和哑巴说话时用什么词。 是的,它在维基百科链接中(关于32位的部分,不是我的 书呆子学 ) https://en.wikipedia.org/wiki/Thunk
(我强调) |
|
|
7
4
此问题已被问及,请参见: What is a 'thunk', as used in Scheme or in general? 据我所知,它类似于lambda语句,在需要对其进行计算之前,您可能不希望返回值;或者它也可以与属性getter进行比较,后者通过设计执行一些代码来返回值,而接口形式却遇到了更多的Like是一个变量,但也具有多态行为,可以通过继承或交换函数指针来交换,函数指针将根据编译时或环境特征在运行时评估并返回值。 |
|
|
8
4
我很苦恼地发现,这个术语没有一个通用的“计算机科学”定义与我所知道的事实上的用法相匹配。我能回忆起的第一次真实的遭遇,是在OS/2天和16-32位转换中,它被实际调用的地方。“雷鸣”在今天的应用中似乎很讽刺。 我大致的理解是,thunk是一个存根例程,它不做任何事情,或者像前面提到的历史案例中那样,以某种方式穿越系统之间的一些基本边界。 所以这种感觉就像是从一个环境到另一个环境的联觉,发出“雷鸣”的声音(比喻/比喻)。 |
|
|
9
0
每 Kyle Simpson's 定义,a 臀部 是一种抽象 时间 异步代码不足。 |