小编car*_*_lm的帖子

如何在Scala中获取项目路径?

我正在尝试从我的Scala项目中读取一些文件,如果我使用:java.io.File(".").getCanonicalPath()我发现我当前的目录远离它们(我已经安装了Scala Eclipse的地方).那么如何将当前目录更改为项目的根目录,或者获取项目的路径?我真的不想拥有输入文件的绝对路径.

  val PATH = raw"E:\lang\scala\progfun\src\examples\"
  def printFileContents(filename: String) {
    try {
      println("\n" + PATH + filename)
      io.Source.fromFile(PATH + filename).getLines.foreach(println)
    } catch {
      case _:Throwable => println("filename " + filename + " not found")
    }
  }

  val filenames = List("random.txt", "a.txt", "b.txt", "c.txt")
  filenames foreach printFileContents
Run Code Online (Sandbox Code Playgroud)

eclipse io scala file path

9
推荐指数
1
解决办法
7596
查看次数

在Scala中使用延迟评估时如何摆脱虚拟变量?

我在斯卡拉一个新手,并与懒惰的评价玩弄和这个问题跌跌撞撞:如果我想使懒惰的评估VALÇ作品,我写的虚拟变量b的声明之前Ç,这我考虑太多样板.我尝试在没有初始初始化的情况下声明ab lazy val,但编译器抱怨.如果我写的东西:lazy val c = a:Double, b:Int也不起作用.

有没有办法摆脱这些虚拟变量?我能以更优雅的方式重构此代码吗?

  var a = 0d;                                     //> a  : Double = 0.0
  var b = 0;                                      //> b  : Int = 0
  lazy val c = a / b                              //> c  : Double = <lazy>
  //some other code...
  a = math.Pi
  b = -1
  (1 to 10).foreach(x => println(f"$x, ${x * c}%.8s"))
                                                  //> 1, -3.14159
                                                  //| 2, -6.28318
Run Code Online (Sandbox Code Playgroud)

refactoring scala lazy-evaluation dummy-data

0
推荐指数
1
解决办法
144
查看次数

标签 统计

scala ×2

dummy-data ×1

eclipse ×1

file ×1

io ×1

lazy-evaluation ×1

path ×1

refactoring ×1