我有两个理由要问:
1.我希望有一个更好的代码碎片来促进每个功能级别
2的版本控制.我从一些注意力缺陷障碍中挣扎,我很难处理长段代码比如大类文件
为了解决这些问题,我过去常常使用C++中的include指令和部分类定义以及C#中可手动定义的可折叠区域.Scala 2.8中有没有这样的东西?
我试图在NetBeans IDE中使用editor-fold标签,但不幸的是它在Scala编辑器中不起作用:-(
更新:据我所知,Scala中没有这样的设施.所以我想问一下:与Scala作者有任何联系的人,或者他们的Bugzilla(或者他们使用的任何东西)的帐户,请给他们一个想法 - 他们应该想到介绍一些这样的东西(我很着迷例如,通过C#区域和部分类,以及简单的旧包括看起来像一个方便的工具,通过简洁,恕我直言使Scala更加美丽.
Mia*_*rke 14
如何用特质做到这一点?你这样定义:
trait Similarity
{
def isSimilar(x: Any): Boolean
def isNotSimilar(x: Any): Boolean = !isSimilar(x)
}
Run Code Online (Sandbox Code Playgroud)
...然后你就像这样使用它:
class Point(xc: Int, yc: Int) extends Similarity
{
var x: Int = xc
var y: Int = yc
def isSimilar(obj: Any) =
obj.isInstanceOf[Point] &&
obj.asInstanceOf[Point].x == x
}
Run Code Online (Sandbox Code Playgroud)
如果班级Point较大,您可以将其进一步分为特征,从而实现您想要的分工.但请注意,我不认为这是可取的,因为除非您已经深入了解,否则很难对代码进行良好的概述.但是,如果你能以一种很好的方式打破它,你可能会从中获得一些漂亮的,可重复使用的块,所以最后它可能仍然值得做.
祝你好运!
//file A.scala
trait A { self: B =>
....
}
//file B.scala
trait B { self: A =>
....
}
//file C.scala
class C extends A with B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |