我正在使用 ChucK 编程语言进行编程。我想使用在另一个文件中声明的类。
我在名为
Foo
的文件中声明了一个名为 foo.ck
的公共类。然后我在另一个文件中添加了文件 foo.ck
并尝试使用该类。我遇到了这个错误:
[using_foo.ck]:line(2): undefined type 'Foo'...
[using_foo.ck]:line(2): ... in declaration ...
带有类的文件(
foo.ck
):
public class Foo {}
Foo foo;
尝试使用
Foo
(using_foo.ck
) 的文件:
Machine.add("foo.ck");
Foo foo;
如果我独立运行,带有类
foo.ck
的文件 Foo
可以工作,但我无法使用其他文件中的类。
卡盘版本:
chuck version: 1.5.0.0 (chai)
linux (pulse) : 64-bit
答案如下:
在ChucK中,要使一个文件知道另一个文件中的类,您应该“spork”包含类定义的文件并确保代码执行的顺序。以下是修复方法:
foo.ck
仅包含类定义:public class Foo {}
spork ~ Machine.add("foo.ck");
<<< now >>> => now + 10::ms; // small delay to ensure Foo is loaded
Foo foo;
延迟 (
<<< now >>> => now + 10::ms;
) 确保在您尝试在主文件中实例化 Foo
类之前正确加载它。根据程序的复杂程度根据需要调整延迟。