当尝试在线翻译或使用IRC机器人运行某些代码时,我总是想知道他们支持哪种版本的Scala。
有没有办法从解释器中检索Scala的版本?
答案 0 :(得分:30)
使用scala.util.Properties.versionString
:
scala> scala.util.Properties.versionString
res0: String = version 2.11.5
答案 1 :(得分:6)
scala> scala.util.Properties.versionMsg
res: String = Scala library version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL
当然看起来像库版本而不是语言版本,但我认为目前在实践中不会有真正的区别。
答案 2 :(得分:4)
如果您只需要版本号而没有"版本"关键字,您可以使用versionNumberString
函数。
scala> scala.util.Properties.versionNumberString
res1: String = 2.12.3
答案 3 :(得分:2)
如果你想获得确切的 Scala 3 版本,你可以从 Manifest 文件中读取它
.../scala3-library_3-3.0.1.jar!/META-INF/MANIFEST.MF
import java.io.FileInputStream
import java.util.jar.JarInputStream
val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath
val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest
manifest.getMainAttributes.getValue("Implementation-Version")
Scastie 中的示例: