2016-12-02 68 views
0

我想知道是否有原因Swift不仅仅是为NSDecimalNumber重载标准算术(+, - ,*,<,>等)运算符,而是选择带名称的传统方法像adding,subtractingSwift Overload NSDecimalNumber operators

我想重载这些运营商,这是一个好主意,有什么潜在的缺点?

EDIT

显然夫特3加入Decimal类型。 Swift 3也将NS放在其他一些类型的前面,所以我认为Decimal只是一个NSDecimal与NS下降,但事实并非如此!虽然它没有真正回答这个问题,但我认为使用Decimal而不是NSDecimalNumber通常应该是Swift 3和更高版本的良好回应。您可能想要坚持使用NSDecimalNumber的一个原因是,如果您有很多扩展名,并且不希望在每次希望使用扩展方法时都进行桥接。

+2

听起来是个好主意。去找它并用你的结果报告。 –

回答

1

有你,尽管有关使用Decimal代替NSDecimalNumber

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