问题标签 [forward-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
18650 浏览

c - 什么是 C 中的前向引用?

什么是 C 中关于指针的前向引用?

我可以举个例子吗?

0 投票
3 回答
21561 浏览

forward-declaration - 前向引用与前向声明

我有点困惑。前向声明和前向引用有什么区别?在我看来,前向声明是当你声明一个尚未实现的函数时,但这不正确吗?您是否必须查看特定情况以声明案例“前向引用”或“前向声明”?

0 投票
2 回答
992 浏览

parsing - 如何在编译器中实现前向引用?

我正在使用 Lex 和 YACC(实际上是 Flex 和 Bison)创建一个编译器。该语言允许无限前向引用任何符号(如 C#)。问题是在不知道标识符是什么的情况下解析语言是不可能的。

我所知道的唯一解决方案是对整个源进行 lex,然后进行“广度优先”解析,因此类声明和函数声明等更高级别的内容在使用它们的函数之前得到解析。但是,对于大文件,这会占用大量内存,并且很难用 YACC 处理(我必须为每种类型的声明/正文创建单独的语法)。我还必须手写词法分析器(这不是什么大问题)。

我不太关心效率(尽管它仍然很重要),因为一旦我完成它,我将自己重写编译器,但我希望那个版本很快(所以如果有任何快速通用的不能在 Lex/YACC 中完成但可以手工完成的技术,也请提出建议)。所以现在,易于开发是最重要的因素。

这个问题有什么好的解决方案吗?这通常如何在 C# 或 Java 等语言的编译器中完成?

0 投票
3 回答
1343 浏览

c# - C#的编译器设计——前向引用

在 c# 等前向引用语言中,编译器如何处理这个问题?编译器的操作步骤是什么?

0 投票
1 回答
3792 浏览

scala - 前向引用扩展了价值问题的定义

我在 scala 中有一些问题来解决隐式值,并且我在 netbeans 中有神秘的错误消息:

“错误:前向引用扩展了值的定义......”

或在 scala 控制台中我有其他错误消息

“类型不匹配:29:错误:类型不匹配;发现:需要 Factory.type(具有基础类型对象工厂):GenericFactory”

我的课程和主要功能的一些描述:

我有 2 个问题,因为 1)我可以在类 A 的参数中传递一个对象,所以我定义了一个抽象类来传递这个抽象类,但这在这里不起作用:/ 2)在那之后,我定义到类 A 中的隐式值是无法识别,并失败并显示错误消息。

您有解决此问题的想法或答案吗?

编辑 1

我在 agisteel 的帮助下更新了代码,没关系,代码正在运行 :)

0 投票
1 回答
7852 浏览

xml - 如何在解组期间使用 JAXB XmlAdapter 处理 XML IDREF 的前向引用?

是否可以在解组过程中处理 JAXB 中XMLIDREF元素的前向引用?XmlAdapter例如,我有以下 XML complexType

guardian字段可以引用Person文档中其他地方的另一个 -type 元素。我目前在编组时使用 XmlAdapter,以便第一次编组对象时,它由包含编组,并且该对象的任何后续出现都通过引用进行编组。请参阅我的上一个问题。但是,由于我的 XML 实例文档是如何创建的,一个Person元素的第一次出现可能在IDREF它出现之后发生。

这是可能的吗?还是我需要以不同的方式处理这个问题?谢谢!

0 投票
3 回答
1059 浏览

assembly - A86 - 定义与前向引用冲突

我正在尝试使用 A86 为 8086 组装一些代码。我将问题缩小到 4 行代码。

你认为这段代码有什么问题?我将地址本身移动到 BX 寄存器并将 testz 地址中的字节值添加到 AL。

在一个更大的程序中,我也得到了#ERROR 13: Byte/Word Combination Not Allowed.

But labelis a word where [label]is a byte。为什么我的编译器不能区分这些?

因为我看不到任何字节/字冲突。


我的编译器平等地解释偏移量 testz 和 testz。我查看了字节码,看不出有什么区别。

上面的代码有效,但是有没有其他方法可以让我在一行中做到这一点

每当我在 [] 中添加标签名称时,根据我的编译器 a86,这是不可接受的。但我觉得他们在语言中是允许的。

0 投票
0 回答
136 浏览

scala - 为什么在 Scala 中允许使用未初始化的变量?

可能重复:
前向引用 - 为什么此代码编译?
Scala 和前向引用

这将打印4c显然是分配0时。和是价值观,所以它们不应该在一个时刻出现,在下一刻出现。在 Scala 中,它们应该是不可变的,对吧?bac05

我不应该至少得到某种警告吗?当然,在上面的例子中,你必须是一个白痴才能错过,但在更复杂的情况下,很难说出它的顺序。

我当然知道我可以使用lazy val b = ...,但是如果我认为我已经把它按正确的顺序排列了怎么办,而我真的没有。根本没有收到任何警告,这不是很危险吗?这运行得很好!?如何通过Scala IDE编译器?是故意的吗?或者它是一个无法修复的错误?:/

:)

0 投票
5 回答
20092 浏览

scala - 在 Scala 中是否有一种通用的方式来记忆?

我想记住这一点:

所以我写了这个,这令人惊讶地编译和工作(我很惊讶,因为fib在它的声明中引用了它自己):

但是当我尝试在 a 中声明 fib 时def,出现编译器错误:

以上编译失败error: forward reference extends over definition of value fib case n => fib(n-1) + fib(n-2)

为什么声明val fib内部 def 失败但在类/对象范围外部有效?

澄清一下,为什么我可能想在 def 范围内声明递归记忆函数 - 这是我对子集和问题的解决方案:

0 投票
1 回答
400 浏览

scala - 嵌套递归函数的Scala前向引用

我有一个带有嵌套递归函数的非常简单的方法定义:

但我得到这个错误:

如果我只是单独放置 val foo: ... = ... 行,而不是嵌套在 def 中,那么一切正常