如何在Scala中使用软件包?
我目前正在学习Scala,发现了一种叫做squant的东西,它可以做各种很酷的事情,比如转换。问题是:我不知道如何使用它 我有RubyGems和node包的背景,所以我希望Scala也有类似的方面 我发现这个词没有多大帮助,所以我开始搜索不同的词。我发现这是一个用“sbt”来解决这个问题的方法。我已经知道如何使用如何在Scala中使用软件包?,scala,Scala,我目前正在学习Scala,发现了一种叫做squant的东西,它可以做各种很酷的事情,比如转换。问题是:我不知道如何使用它 我有RubyGems和node包的背景,所以我希望Scala也有类似的方面 我发现这个词没有多大帮助,所以我开始搜索不同的词。我发现这是一个用“sbt”来解决这个问题的方法。我已经知道如何使用scalac编译文件,并使用scala运行它们,所以在我做了一些研究之前,我对sbt有点困惑。我试图按照说明将libraryDependencies替换为“com.squants”%%“
scalac
编译文件,并使用scala
运行它们,所以在我做了一些研究之前,我对sbt
有点困惑。我试图按照说明将libraryDependencies
替换为“com.squants”%%“squants”%%“0.4.2”
,但这只会在sbt控制台中引发大量错误。最终,我希望包与我的代码一起工作,而不是在控制台中
然后我在一个名为的网站上找到了这个框架。我从这个网站下载了一个jar文件,但不知道如何在Scala中使用jar文件(如果可能的话?)。搜索结果显示了一些结果
作为参考,这是我用来测试包的scala文件:
import com.squants._
object HelloSquants {
def main(args: Array[String]): Unit = {
val x: Power = Kilowatts(12)
val y: Power = Megawatts(0.023)
val sum = x + y
println(x + " plus " + y + " equals " + sum)
}
}
让这个软件包在Scala中工作的正确方法是什么?有很多问题
首先,你有点混淆术语。包是代码的名称空间。你可以写一些代码
package foo {
class Apple...
}
package bar {
class Apple...
}
然后,根据要使用的Apple类,可以导入foo.Apple或bar.Apple。Foo和bar是软件包。。你不是说包裹
Sbt是学习的必要工具。Scala项目变得越来越大,你会得到一堆库。我想当你说包时,你的意思是图书馆
所以,是的,遵循一些简单的SBT教程。。。一个好的起点是
添加
"com.squants" %% "squants" % "0.4.2"
sbt是正确的,它将下载squants库,并将其包含在编译路径中。但是,它不会自动将其添加到您的跑步路径中。为此,我建议您使用idea编写代码,这样它就可以看到build.sbt文件,并为您的类路径添加正确的内容。。然后您应该可以右键单击并运行代码。感谢您的澄清。我将开始学习sbt,看看我能去哪里。另一个问题:你说Scala项目会变得越来越大——我目前正在用scalac一次编译一个文件,所以我假设sbt会让我根据Scala文件的函数等将大量的Scala文件放在多个目录中?谢谢对SBT compile编译所有scala文件。它也很智能,只编译自上次编译以来更改的文件