有没有办法轻松确定某个值是否为数字?我正在通过快速的标准库查看,似乎无法得出任何结论。像这样:
var val: Any = ...
if let number = val as? Number {
//do something
}
我真的不需要抛出它只是弄清楚它是否是一个数字。而不是做一堆Int,Double等检查。
答案 0 :(得分:2)
给定Any
类型的变量,您可以使用如下函数检查它是否为数字:
func isNumber(value: Any) -> Bool {
return (value is Int) || (value is UInt) || (value is Float) || (value is Double)
}
有趣的情况,如果变量属于AnyObject
类型,则为以下任何一种:
value is Int
value is UInt
value is Float
value is Double
value is Bool
对于所有这些数据类型,将返回true
:
Int
UInt
Float
Double
Bool
所以例如:
let x: AnyObject = false
x is Int // <== evaluates to true
x is Float // <== evaluates to true