NSDecimal 设置为零的不同方法是什么?我对目前发现的 3 个中的任何一个都不感兴趣。

NSDecimal zero = {0}; // Not obvious what's going on here.

NSDecimal zero = @(0).decimalValue; // @(0) appears to always return the same instance.

NSDecimal zero = [NSDecimalNumber zero].decimalValue; // [NSDecimalNumber zero] appears to always return the same instance.

有没有一种比其他的更容易被接受?我是否缺少某种 NSDecimalZero 常量/函数?

最佳答案

我从来没有注意到 NSDecimal 没有一个很好的 Create 函数。

我无法想象除了您列出的 3 种方法之外的另一种方法。

NSDecimal zero = {0};

你是对的,这并不明显,这实际上非常不明显。通常的程序员不会查找文档来查看结构将在所有属性设置为零的情况下表示什么值。
NSDecimal zero = @(0).decimalValue

我不喜欢它,因为它使用 NSNumber 并且不必要地创建了一个自动释放的对象。
NSDecimal zero = [NSDecimalNumber zero].decimalValue

这是我首选的解决方案。直接使用 NSDecimal 结构主要是为了提高性能(不在堆上创建对象)。此方法与意图匹配,因为它使用单例常量。

但是,如果您有很多涉及 NSDecimal 的代码并且性能对您来说非常重要,请创建您自己的函数/宏来初始化结构并在任何地方使用此函数。那么这个问题对你来说无关紧要,因为函数名会让代码变得明显。

关于ios - 将 NSDecimal 设置为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16165749/

10-13 02:24