如何保存和重用Scala实用程序代码

时间:2012-02-25 09:54:46

标签: scala

在项目中收集和使用有用的Scala实用程序函数的好方法是什么。这里的重点是非常简单的独立功能,如:

def toBinary(i: Int, digits: Int = 8) =
    String.format("%" + digits + "s", i.toBinaryString).replace(' ', '0')

def concat(ss: String*) = ss filter (_.nonEmpty) mkString ", "
concat: (ss: String*)String

这个问题是基本的,我知道;-)但是,我知道总有一种最佳的方法可以做某事。例如,重用Scala交互式shell中的代码,Idea,Eclipse,有或没有SBT,将库放在GitHub等上,可以快速为这样一个简单问题引入最佳和非最佳方法。

2 个答案:

答案 0 :(得分:9)

您可能希望将此类方法放在package object

您还可以将它们置于普通object中,并在需要这些方法时导入对象中的所有内容。

object Utilities {
  def toBinary(i: Int, digits: Int = 8) = // ...
}

// Import everything in the Utilities object
import Utilities._

答案 1 :(得分:1)

如果您希望从任何地方都可以轻松访问它,那么最好的办法就是将它粘贴在scala-library jar中。就个人而言,我在/jvm/S.jar(或类似的东西)中拥有我所有的自定义内容,并在每次需要时将其添加到类路径中。

重新打包Scala库jar非常简单 - 解压缩,移动类层次结构,然后重新打包。 (你应该将它放在一些包和/或包对象中。)