2016-12-02 3 views
0

Swiftは、標準演算(+、 - 、*、<、>など)の演算子にNSDecimalNumberをオーバーロードしておらず、代わりに名前付きの従来のメソッドを選択しますaddingsubtractingなどSwiftオーバーロードNSDecimalNumber演算子

これらの演算子に過負荷をかけたいのですが、これは良い考えですか、潜在的な欠点は何ですか?

EDIT

明らかスウィフト3はDecimalタイプを追加しました。 Swift 3はまた、他の種類の群の前にNSを落としたので、DecimalはNSが落としたばかりのNSDecimalだったと仮定しましたが、そうではありません!それは本当に質問に答えるわけではありませんが、NSDecimalNumberの代わりにDecimalを使用すると、通常、Swift 3以降では良い応答になると思います。 NSDecimalNumberを使用する理由の1つは、多くの拡張機能があり、拡張機能を使用するたびにブリッジしたくない場合です。

+2

いいアイデアのようです。それを行って結果を報告してください。 –

答えて

1

NSDecimalNumberの代わりにDecimalを使用しましたか?

let d1 = Decimal(integerLiteral: 10) 
let d2 = Decimal(integerLiteral: 2) 
let result = d1 * d2 // 20 
+0

コンテキスト:https://github.com/apple/swift/blob/1ff21546037a86e4cc89ebe5fd0e0c738cd234c8/stdlib/public/SDK/Foundation/Decimal.swift#L128-L158 – jtbandes

+0

私は通貨で作業していますので、 NSDecimalNumber – Alex

+0

@Alex DecimalはSwiftのNSDecimalNumberに相当します。 – bsarrazin

関連する問題