"Int"型で暗黙的なインクリメントまたは "++"演算子を作成できるのだろうか 私のコードで任意のスコープから呼び出すことができます。 exampeのためのその(任意のパッケージからすなわち) scala - 任意のパッケージから呼び出すことができる "インクリメント拡張メソッド"を作成することは可能ですか?
:
var x = 4
x++
println(x) // will print 5
感謝。
"Int"型で暗黙的なインクリメントまたは "++"演算子を作成できるのだろうか 私のコードで任意のスコープから呼び出すことができます。 exampeのためのその(任意のパッケージからすなわち) scala - 任意のパッケージから呼び出すことができる "インクリメント拡張メソッド"を作成することは可能ですか?
:
var x = 4
x++
println(x) // will print 5
感謝。
高レベル(utilパッケージ)で暗黙のクラスを作成できます。なぜ暗黙のは(それなしx
ためprintln
は4
を返された)それの世話をしていない
object RichPrimitive {
implicit class RichInt(var int: Int) {
def ++ = int = int + 1
}
}
import RichPrimitive.RichInt
var x: RichInt = 4 // if you don't do : RichInt, this does not work
x ++
println(x.int) // returns 5
全くわからない:私はこの使用して明示的な型帰属を達成することができました。
号
collection.mutable.Map
に値を追加すると、マップを変更していて、その変数を保持している変数は変更されていません(つまり、1から2への変更は変数の変更であり、Intの変更ではありません)。マップ)implicit class RichInt
を定義することもできますが、他のパッケージから使用する場合は、引き続きインポートする必要があります。つまり、@ Tanjinの答えはあなたが望むものの公正な近似値です。
私は恐れることはできません。 'x + = 1'で本当に' ++ 'が必要なのはどういう意味ですか? – SergGr