如何在Swift中检查变量是否为元组?
阅读I see的Type Casting部分,我使用如何在Swift中检查变量是否为元组?,swift,syntax,tuples,typechecking,Swift,Syntax,Tuples,Typechecking,阅读I see的Type Casting部分,我使用is关键字来检查变量的类型 func isString(test: AnyObject?) -> Bool { return test is String } 似乎当我尝试类似于检查包含三个NSNumber对象的元组时,我收到一个“元组不符合协议AnyObject”。有没有办法检查变量是否包含元组 func isTuple(test: AnyObject?) -> Bool { return test is (NS
is
关键字来检查变量的类型
func isString(test: AnyObject?) -> Bool {
return test is String
}
似乎当我尝试类似于检查包含三个NSNumber对象的元组时,我收到一个“元组不符合协议AnyObject
”。有没有办法检查变量是否包含元组
func isTuple(test: AnyObject?) -> Bool {
return test is (NSNumber, NSNumber, NSNumber) // error
}
您可以这样做:
func isTuple(test: Any?) -> Bool{
return test is (NSNumber, NSNumber, NSNumber)
}
不能在此处使用,因为不是类类型的实例
可以表示任何类类型的实例AnyObject
可以表示任何类型的实例,包括函数类型Any
Any
类型:
func isTuple(test: Any?) -> Bool {
return test is (NSNumber, NSNumber, NSNumber)
}
isTuple("test") // false
let tuple: (NSNumber, NSNumber, NSNumber) = (Int(), Int(), Int())
isTuple(tuple) // true
你的函数没有返回类型,所以这是一个开始的好地方,这是多余的;当
is
单独返回Bool
时,不需要额外的if
语句。