1

私はscalaを初めて使用し、関数を使用して作成したファイルを構造化する方法を見つける方法を探していました。さらに、cmd からその関数を呼び出す方法。プログラムの作成を開始する方法を理解するだけのような単純な関数を作成しようとしています。以下のような単純なものは何でも役に立ちます。

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

これをメモ帳++で書いていることに注意してください。私の最初の課題はグレーコードです。したがって、私の最終的な目標は、ファイルがどのように実行され、関数が呼び出されるかを理解することです。以下のグレーコードに対する解決策はたくさんあります。

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

test1valの宣言がありません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 を呼び出しtestて 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 に答える