2017-12-11 8 views
-2

を番号を追加します。私は、次のしている[ダブル]配列内のすべての要素に

var x = some array Array[Double] 
val n = 3 

を私はどのように、xのすべての要素にn個を追加したいですか?私は試しました:

x.map(v => v + n) 

しかし、それは動作しません。

+4

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

+0

これらのルール、コーナーケース、特殊ケース、境界ケース、エッジケースからの例外を含め、すべてのルールを含めて、実行したいことを*正確に指定できますか?通常のケースと例外、コーナーケース、特殊ケース、境界ケース、エッジケースの両方で、起こりそうなことを示すサンプル入力と出力を提供できますか? –

+1

'x.map(v => v + n)'は*正確にはあなたがしたいことをする方法なので、 "doesnt work"なら、あなたが私たちに見せてくれない間違ったことが他にあるはずです。 –

答えて

2

次のような第三VARを使用する必要があります。

val x2 = x.map(_ + n) 
0

あなたが更新配列を取得する変数にマップのリターン出力を記述する必要があります。

1

新しいArrayを構築したいが、ちょうどその、既存の1の値を変更したくない場合は、次の

一般に
for (i <- x.indices) 
    x(i) += n 

、ScalaのコレクションAPIは、現在提供していませんhigher-インプレース・ミューテーションを行うレベル操作であるため、このような低レベルのコードに頼らざるを得ません。 (それはScala 2.13で変更されます)

関連する問題