我经常听到这句话,并不完全理解它的含义。这是什么意思?如果可能的话,有一个例子吗?
谢谢你!答案 0 :(得分:11)
这个表达式的一个用法是指一种编程风格,其中存在非常深的调用堆栈。您可能会看到一个名为Grobble
的方法,并想知道它的作用,因此您打开定义并看到:
class FooHandler
{
void Grobble(Foo foo)
{
foo.Grobble();
}
}
那么你看看Foo.Grobble
:
class Foo
{
FooImpl _fooImpl;
void Grobble()
{
_fooImpl.Grobble();
}
}
这也会让你FooImpl
看起来像这样:
class FooImpl
{
void Grobble()
{
this.Grobble(false);
}
// etc...
}
在深入研究代码之后,仍然无法看到结束,你被允许沮丧地惊呼“这是乌龟一路下来!”
参考地球是在乌龟背上的metaphor地球。乌龟站在什么地方?另一只乌龟......等等。
答案 1 :(得分:3)
这通常指的是自托管编程语言,其中解释器或编译器使用与正在解释/编译的相同语言编写。它也可以引用用于语言本身的语言库。
Smalltalk和Lisp以这种方式而闻名。
答案 2 :(得分:1)
Turtles一直向下是一个有时用来指无限递归的短语。例如,什么是最小整数?没有一个。 -2小于-1,-3小于-2,依此类推。没有底部。引用的原始来源是对“如果世界是在乌龟的背上,乌龟站在什么位置?”的问题的答案。无论如何,它没有我所知道的任何编程特定含义。
答案 3 :(得分:1)
它有时被用来指纯粹的'面向对象(或功能)语言。在a.o. java,c#,c ++,Objective c和Delphi,有些本机类型(int)不像对象那样。 Smalltalk的幻觉保持得更好。