如何在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'

【问题讨论】:

我看不出您的示例如何说明需要获取 ab 的动态类型 - 您已经知道它们是同一类型。 @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 中捕获它们 [重复]

Swift:枚举编码如何获取原始值[重复]

在 Swift 中,当每对元素都是字符串时,如何遍历一个数组以获取 2 个变量?和一个字符串

如何在swift3中获取两个日期之间的日历日[重复]

如何在 Swift 中判断变量的类型

在swift中使用类类型变量作为函数参数[重复]