【发布时间】:2021-09-08 12:55:28
【问题描述】:
我从不同来源获取数据,变量可以是数字或数字字符串。如何确保“(number as?NSString)”或“(number as?NSNumber)”总是成功?类似于 Java optInt 的东西,即使数字是字符串也永远不会失败。请参见下面的示例:
func testNumber()
{
var number = 123
guard let a = (number as? NSNumber)?.intValue else { print("1");return; }
}
func testNumberString()
{
var number = "123"
guard let a = (number as? NSNumber)?.intValue else { print("2");return; } // this failed.
}
func testNumberToString()
{
var number = 123
guard let a = (number as? NSString)?.intValue else { print("2");return; } // this sometimes failed too depend on datasource.
}
【问题讨论】:
-
所以无论输入是字符串还是整数,你都想要 number/ Int 结尾吗?
-
你的意思是你的输入是数字或字符串,但你想要整数作为返回?如果是,那么您可以使用泛型。
-
@RajaKishan 我希望根据不同的情况选择最终结果为 NSString 或 NSNumber,没有错误。