2017-11-15 15 views
-3

Scalaの3つの年齢の平均を計算する必要があります。私は以下の方法を試したが、うまくいかなかった。助けてください。Scalaの平均を計算する

sealed abstract class Component 
case class Life (age:Int) extends Component 

object Life extends Component{ 
    def main(args: Array[String]){ 
    val lives = List{Life(10), Life(20), Life(30)} 
    def livesMean (l:List[Life]):Double = { 
     println(livesMean) 
    } 
    } 
} 
+1

あなたと同じ問題を抱えている可能性のある人のために将来参照されるようにあなたのコードを提供するべきです。画像へのリンクが常に利用可能なわけではありません。 –

+2

"それはうまくいかなかった"は、私たちがあなたを助けるために十分正確なエラーの説明ではありません。 *何がうまくいかない? *どのように動作しませんか?あなたのコードにはどんな問題がありますか?エラーメッセージが表示されますか?エラーメッセージとは何ですか?結果はあなたが期待している結果を得ていないのですか?あなたはどんな結果を期待していますか、そしてなぜ、あなたはどのような結果を得ていますか、そしてその二つの違いは何ですか?あなたが観察している行動は、望ましい行動ではありませんか?望ましい行動とは何か、なぜ行動が観察され、どのように違うのですか? –

答えて

0

まずあなたが間違って命のオブジェクトのリストを宣言しているが。平均を求めるには、年齢の合計を取ってリストのサイズで割ります。

sealed abstract class Component 
case class Life (age:Int) extends Component 

object Main extends Component{ 
    def main(args: Array[String]){ 
    val lives = List(Life(10), Life(20), Life(30)) 
    def livesMean (l:List[Life]):Double = lives.map(_.age).sum/lives.size 
    println("average of lives "+ livesMean(lives)) 
    } 
} 

実行中です。あなたはそれを見ることができますhere

0

livesの作成に使用する構文は無効です。これは動作するはずです:

abstract class Component 

case class Life(age: Int) extends Component 

object Life extends Component { 
    def main(args: Array[String]) { 
     val lives = List(new Life(10), new Life(20), new Life(30)) 
     val livesMean: Double = lives.map(_.age).sum/lives.size 
     println(livesMean) // 20.0 
    } 
} 

Scalaのフィドル:https://scalafiddle.io/sf/Lyu9VRf/0

+0

残念ながら、動作しません。 – test123test

+0

@ test123test特に動作しないのは何ですか? – adrice727

+0

"liveMean"は表示されません – test123test