1

我是 scala 的新手,我一直在到处寻找如何找到如何构造我用我的函数编写的文件。此外,如何从 cmd 调用该函数。我正在尝试编写一个简单的函数,就像只是为了了解如何开始编写程序。像下面这样简单的任何东西都会很有用。

def test (n : Int){ println(n + n) }

请记住,我是在 Notepadd ++ 中编写的。我的第一个任务是格雷码。所以我的最终目标是弄清楚文件是如何运行的,函数是如何被调用的。下面有很多格雷码的解决方案是1。

def gray(n: Int) ={
def gray(n: Int, res: List[String]): List[String] = {
     val nRes = res.map("0" + _) ::: res.reverse.map("1" + _)
         if(n == 1) nRes
           else gray(n-1, nRes);
    }
   gray(n, List(""))
}

我尝试过的事情是制作一个目标文件并运行它并解析参数以传递给一个函数。

object test1 {
   def main(args: String) {
     n = args.toInt
  test(n);
}
def test(n: Int){
    println( n + n)
    }
}
4

2 回答 2

3

test1缺少 的val声明n = args.toInt。添加它会给出以下编译好的代码。

object test1 {
  def main(args: String) {
    val n = args.toInt
    test(n);
  }
  def test(n: Int){
   println( n + n)
  }
}

在 REPL 中加载它会显示defined module test1. 然后你可以调用test1.main("1")which callstest并打印出 2。如果你不熟悉 REPL,请参阅此链接

scala> :load Test1.scala
Loading Test1.scala...
defined module test1

scala> test1.main("1")
2
于 2013-01-23T17:25:39.083 回答
0

我实际上是在玩了一点之后才弄清楚的。解决方案就像 Console.readInt 一样简单。这会抓取用户在控制台中输入的任何值。

object project1{
def main(args: Array[String]) {
println("Hello World")
println("Enter a number")

val x = Console.readInt

test(x);
 // println(x)
}
def test(x: Int){
    println( x + x)
    }
}

在控制台上时,您只需键入 scale project1.scala 即可运行该函数,就像您使用 java 或 C++ 一样,当您输入一个键时,该值将从屏幕中获取。

所以上面的控制台看起来像。

桌面/> scala helloWorld.scala

Hello World
输入数字
3
6

于 2013-01-23T20:37:02.760 回答