如何在swift中获取变量的类型[重复]
Posted
技术标签:
【中文标题】如何在swift中获取变量的类型[重复]【英文标题】:how to get type of a variable in swift [duplicate] 【发布时间】:2017-05-20 12:07:35 【问题描述】:swift 中的每个变量都有一个类型。
var c: Int = 0 // 类型是 Int
var d: (Int,(String,Double)) // 类型为 (Int,(String,Double))
如何获取变量的类型。请参见下面的示例。
func retSomeThing ()-> ((Int,(String,b: Int)))
return(10,("something",b: 56))
var a = retSomeThing()
var b = retSomeThing()
if (a.type.equal(b.type)) // my problem is here.
print("Hala Madrid")
我用过这段代码
a.dynamicType
但它显示:元组类型'(Int,(String,b:Int))'的值没有成员'dynamicType'
【问题讨论】:
我看不出您的示例如何说明需要获取a
和 b
的动态类型 - 您已经知道它们是同一类型。
@Hamish 是的,我知道此示例中的类型。但我需要获取元组变量的类型。
具体见this answer链接问答。
@Hamish 谢谢 :))))
【参考方案1】:
您可以使用is
关键字检查任何变量的类型。
var a = 0
var b = "demo"
if (a is Int)
print("It's an Int")
if (b is String)
print("It's a String")
要比较任何复杂类型,您可以使用以下方法:
if type(of: abc) == type(of: def)
print("matching type")
else
print("something else")
【讨论】:
'is' only 不适用于元组值 @AmirShabani 检查更新的答案 这段代码中没有多余的括号吗? @Olympiloutre 感谢您指出这一点。答案已更新:)以上是关于如何在swift中获取变量的类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何找到方法可能抛出的错误类型并在 Swift 中捕获它们 [重复]