なぜ Scalaでリストを作成するのは難しいですか?私は他の多くの言語を知っており、とても簡単なユースケースを見つけようとするのは苦労したことがありません...実装に1分しかかからないものを1時間以上費やしました。私は今、助けを求めている理由は、この時点では少し怒ってScalaでリストを作成する
問題: 私は整数の配列を渡すとの立方体の配列を返すされてやろうとしています奇数
制約:
def cubes(a1: List[Int]): List[Int] = {
var a2 = List[Int]()
for(i <- 0 to a1.size-1){
if(a1(i)%2 != 0) a2 :+ a1(i) * a1(i) * a1(i)
}
//If I try to print out the first element I get an error
println(a2(0))
}
cubes(List(1, 2, 3, 4, 5, 6, 7))
これはエラー
list1.scala:15: error: type mismatch;
found : Unit
required: List[Int]
println(a2(0))
^
です:私はリストを使用する必要があり、私はこれは私がこれまで持っているものであるループ
のために使用する必要があります
質問:私の制約を指定してリストを構築できるように、私のコードをリファクタリングするにはどうすればいいですか
これは動作しますが、どのように私は、リストに要素を追加し、それを返すことができますか?また、リストに要素を印刷するのにも苦労しています。 a2(0)を実行するとエラーが発生し続けますが、なぜ – Phillip
私はそれを理解したかもしれません。悪い回答を投稿する – Phillip
@ Philips実際に自分でリストを作成する必要はありません。 'for'はリストを返します。あなたは実際に 'val list = for ....'を実行してリストを得ることができます。また、おそらく 'return'を使うべきではありません。[here](https://tpolecat.github.io/2014/05/09/return.html)を参照してください。戻り値をメソッドの最後の行に置いてください。これをもっと明確にするために私の答えを編集しました。 – Shaido