从另一个文件导入特征

时间:2016-08-22 14:21:49

标签: scala

我有一个名为Model.scala的文件,该文件以下列行开头:

package chess

trait Content

在同一目录中,我有另一个名为Board.scala的文件,该文件以下列内容开头:

package chess

import chess.Content

但是,在Board.scala中,我收到此错误:

Error:(3, 8) object Content is not a member of package chess
import chess.Content
       ^

那么如何从其他文件导入Trait

2 个答案:

答案 0 :(得分:1)

文件的位置无关紧要,当两个文件具有相同的包(在您的情况下为“象棋”)时,两个特征/类都应在范围内。因为这似乎不适合你,我的猜测是你试图在sbt之外运行它。

你可以更新以显示你的项目结构是什么,如果有的话,可以显示template<class T> class my_scoped_ptr { private: T *t; public: my_scoped_ptr(T * _t) : t(_t) {} ~my_scoped_ptr() { typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void) sizeof(type_must_be_complete); delete t; } }; class Holder { public: Holder(); ~Holder(); private: class Impl; my_scoped_ptr<Impl> _mptr; }; 文件吗?

答案 1 :(得分:0)

我知道这已经过时了,但我自己正在加强scala,可能会找到你想要的答案。

如果Board.scala中的特征和类位于同一个包中,则无需导入。 如果您在使用SBT的IntelliJ Idea中遇到此错误,可能需要重新同步SBT。

另外,你的Board.scala类应该有'with'来使用这个特征(而不是import):

class Board extends App with Content {