Swift 游乐场中的 lldb_expr 是什么?
What is lldb_expr in Swift Playground?
我试图向某人演示基本继承以及在覆盖 init 时如何始终默认调用超级初始化程序:
class Animal{
init(){
println("Animal has been initialized!")
}
}
class Dog:Animal{
var feet:Int = 4
override init(){
println("Dog has been initialized!")
}
}
var d = Dog()
为什么我在最后一行得到 {__lldb_expr_380.Animal feet 4}
?当我在动物 class.
下创建实例变量时它消失了
我对此不是 100% 肯定,但对我来说这似乎是理智和合乎逻辑的。
您的 Animal
class 是空的,因此编译器需要一种方法来表达/打印 class / 它的值。所以它所做的是 print __lldb_expr_380.Animal
因为编译器不知道还能用它做什么。如果添加一个 属性,例如 legs
,结果将变为:{{legs 2} feet 4}
.
所以,根据我的理解,只要你有这个空的 superclass ,编译器就会得到 'confused' 并且发生的错误是它只会打印出 __llb_expr_:some_number:.ClassName
而不是某些东西像 {}
.
参考:http://discuss.codewithchris.com/t/episode-7-classes-error---lldb-expr-/150
我试图向某人演示基本继承以及在覆盖 init 时如何始终默认调用超级初始化程序:
class Animal{
init(){
println("Animal has been initialized!")
}
}
class Dog:Animal{
var feet:Int = 4
override init(){
println("Dog has been initialized!")
}
}
var d = Dog()
为什么我在最后一行得到 {__lldb_expr_380.Animal feet 4}
?当我在动物 class.
我对此不是 100% 肯定,但对我来说这似乎是理智和合乎逻辑的。
您的 Animal
class 是空的,因此编译器需要一种方法来表达/打印 class / 它的值。所以它所做的是 print __lldb_expr_380.Animal
因为编译器不知道还能用它做什么。如果添加一个 属性,例如 legs
,结果将变为:{{legs 2} feet 4}
.
所以,根据我的理解,只要你有这个空的 superclass ,编译器就会得到 'confused' 并且发生的错误是它只会打印出 __llb_expr_:some_number:.ClassName
而不是某些东西像 {}
.
参考:http://discuss.codewithchris.com/t/episode-7-classes-error---lldb-expr-/150