[ios]将 NSDecimal 设置为零

发布时间: 2017/3/21 22:46:21
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

有哪些不同的方式设置的 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 常数/功能吗?

解决方法 1:

我永远不会注意到 NSDecimal 没有好 Create 函数。

我无法想象比 3 你列表的另一种方法。

NSDecimal zero = {0};

你是正确的这不是明显,这是非常不明显。通常程序员不会查找文档以查看哪些结构将代表所有属性的值设置为零。

NSDecimal zero = @(0).decimalValue

我不喜欢它,因为它使用 NSNumber 和不必要地创建一个 autoreleased 对象。

NSDecimal zero = [NSDecimalNumber zero].decimalValue

这是我首选的解决方案。使用 NSDecimal 结构直接画的大多是性能得到提升 (没有在堆上创建对象)。此方法与意图相匹配,因为它使用单例常数。

然而,如果你有很多的代码涉及 NSDecimal 和性能是很重要的创建你自己的函数/宏初始化结构和无处不在使用此函数。然后这个问题不会对你因为函数名称将会使代码更明显。

赞助商