私はGroovyが初めてです。次の Groovy コードを実行します。
myList=[234, 34, "Stackoverflow", 3.14]
myList=myList.collect {if (it instanceof Integer) it*it}
println myList
それは出力します:
[54756, 1156, null, null]
文字列の値を変更すべきではないように思えます。2行目を次のように変更すると:
myList=myList.collect {if (it instanceof Integer) it*it else it=it}
それは私が期待したように動作します:
[54756, 1156, Stackoverflow, 3.14]
その背後にあるロジックは何なのか気になります!