スカラーが新しくなったので、私は多くの事をグーグルで解答し、多くの場合、良い答えを見つけます。しかし、私はこの特定の質問に対する答えを見つけることができませんでした。グーグルでの「ポストデクリメント(scala in post-decrement in scala)」は機能上の言語の答えのために、トップにdontcha-use-post-decrement-in-scalaをもたらします。スカラのポストデクリメントのないシーケンスへの序数の割り当て
だから、私は本当に、次を行うための機能的な方法だかを知りたい:
object A {
val list = List("a", "b", "c")
val map = {
var ord = list.size
Map(list map { x => (x, { val res = ord; ord -= 1; res }) } : _*)
}
}
class Test extends org.scalatest.FunSuite {
test("") {
println(A.map) // Map(a -> 3, b -> 2, c -> 1)
}
}
それは基本的に与えられたリストからマップを作成し、リストの各要素に減少序符号を付しています(実際のコードもちろん、この最小限の例より複雑です)。
私は特にvar ord = ...
(変更可能)と{ val res = ord; ord -= 1; res }
(減少後)の部分に不満です:/これを行う別の方法がありますか?
「toMap」を指定すると、2番目の 'reverse'は不要です。 –
@TheArchetypalPaul私は同意します。 OPがそれを見ていたやり方で印刷してください。おそらく私はそれを削除する必要があります。 –
@YuvalItzchakov私は地図が注文されていないことを知っています;) – Alex