如何在LLDB中获取Existential Type的类型而非具体实现类型?
在LLDB中获取Swift Existential Type的最优方法
针对你遇到的问题——LLDB默认打印变量时显示动态具体类型而非声明的any Car(Existential Type),可以通过以下两种直接高效的方法获取静态的Existential Type:
使用
frame variable -T <变量名>命令:
该命令会同时展示变量的静态声明类型和动态具体类型。执行frame variable -T obj会得到类似输出:(any Car) obj = testSwiftProj.SportsCar()其中括号内的
any Car就是你需要的Existential Type。使用
expr -T <变量名>命令:
此命令专门打印变量的静态类型,执行expr -T obj的输出示例:(any Car) $R0 = testSwiftProj.SportsCar()
这两个方法无需复杂的底层操作,就能快速获取变量声明时的Existential Type。
内容的提问来源于stack exchange,提问作者ximmyxiao
相关产品推荐
相关产品推荐

