2016-10-15 6 views
0

からユースケースクラス主な目的があります:スカラ:私のプロジェクトでメイン

object Main extends App { 
    println("Hello world") 
} 

と別の1:

object Abc { 
    abstract class BAbcTest 
    case object Meow extends BAbcTest 

    ... 


    def domeow(b: BAbcTest): BAbcTest = b match { ... } 
} 

私はMainからdomeowを呼び出すことができますどのように?私はsbtを使用しています。runと入力すると、「Hello World」と表示されます。

私が主目的でdomeow(Meow)を書き込もうとしましたが、それは見られない

を言い続け:値ニャー

答えて

1

ちょうどMainオブジェクト内Abc.domeow(Abc.Meow)を行います。 Main内のすべてはmain methodで実行され、Main extends Appとなります。あなたはMainAbc.test(1)を行う

object Main extends App { 
    println("Hello world") 

    import Abc._ 

    Abc.domeow(Meow) 
    } 


    object Abc { 
    abstract class BAbcTest 
    case object Meow extends BAbcTest 
    def domeow(b: BAbcTest): BAbcTest = b match { case Meow => Meow } 
    } 

Abc._ Main

object Main extends App { 
    println("Hello world") 
    Abc.domeow(Abc.Meow) 
    } 

またはインポート内import Abc._を使用してMainオブジェクトまたはimportAbcからMeowオブジェクトを参照するためにAbc.Meow INORDERをしなければならない

オブジェクト。

MainAppです。メイン内のすべてのコードは、オブジェクトMainmainメソッド内で実行されます。したがって、sbt runを実行すると、Mainオブジェクト内のすべてのコードが実行されます。

object Main extends App { 
    println("Hello world") 
    println(Abc.test(1)) 
} 

object Abc { 
    def test(a: Int): Int = a match { ... } 
} 

ScalaのREPL

scala> object Abc { 
    def test(a: Int): Int = a match { case 1 => 1} 
    } 
defined object Abc 

scala> object Main extends App { 
    println("Hello world") 
    println(Abc.test(1)) 
    } 
defined object Main 

scala< Main.main(Array("")) 
Hello world 
1 
+0

さて、私はそれがすべて私が使用していますケースクラスについてです考え出し - この上の任意のアイデア? –

+0

@今天春天これは役に立ちましたか? – pamu

+0

非常に役に立ちました - 「Abc」なしでそれを書く方法はありませんか?あらゆる使用の前に? –

関連する問題