83435


以下のように、Floatの配列array1とarray2があった場合  
そのまま引き算のように記述するとエラーになります。

[code]

    var array1 = floatArrayOf(10.toFloat(), 8.toFloat(), 5.toFloat())
    var array2 = floatArrayOf(4.toFloat(), 3.toFloat(), 2.toFloat())
    
    var array3 = array1 - array2
    
[/code]

得たい値(配列)は以下のようなものです。

[code]

    [6.0,5.0,3.0]
    
[/code]

Kotlinでは、配列同士の引き算をどのように記述するのが良いですか？

ちなみに私はKotlin初心者なので、`10.toFloat()`のような書き方があまりスマートではないと感じています。  
Floatの配列を作成する時にもっと良い方法があったらそれも知りたいです。


CC BY-SA 4.0
2021-11-05T01:54:24.333
83434
2021-11-09T12:54:25.770
2021-11-05T03:54:35.390
7290
34471
question
java android kotlin
Kotlin で配列同士の引き算をするには


> そのまま引き算のように記述すると

というのがどの言語を念頭に置いているのかわかりませんが、 _配列同士の引き算_ ということ自体が、例えば Java
では元々やらない発想ですね。あと、`.toFloat()` については、値に `f` を付ければいいのは Java と同じかと。

[code]

    var array1 = floatArrayOf(10f, 8f, 5f)
    var array2 = floatArrayOf(4f, 3f, 2f)
    var array3 = Array(3){array1[it] - array2[it]}
    
    array3.forEach{f -> println(f)}
    
[/code]

for ループ的にやってみましたが、想定されているもの（ _配列同士の引き算_ ）とは違うかもしれません。


CC BY-SA 4.0
2021-11-05T03:54:03.223
83435
2021-11-05T03:54:03.223
7290
83434
answer


zipして、計算。

[code]

    $ kotlinc
    >>> val array1 = floatArrayOf(10.toFloat(), 8.toFloat(), 5.toFloat())
    >>> val array2 = floatArrayOf(4.toFloat(), 3.toFloat(), 2.toFloat())
    
    >>> array1.zip(array2).map{(a, b) -> a - b}
    res12: kotlin.collections.List<kotlin.Float> = [6.0, 5.0, 3.0]
    
[/code]


CC BY-SA 4.0
2021-11-09T12:54:25.770
83522
2021-11-09T12:54:25.770
46671
83434
answer