gpt4 book ai didi

properties - 为什么在 init block 中初始化变量接口(interface)属性的代码不能编译?

转载 作者:行者123 更新时间:2023-12-01 04:59:43 26 4
gpt4 key购买 nike

interface A {
var a: Int
}

class AJunior : A {
override var a: Int

init {
a = 3
}
}

它不会编译,因为

Property must be initialized or be abstract



但它已初始化。我知道我可以写:
override var a: Int = 3

但是为什么第一个例子不能编译呢?我的猜测是简化编译器实现是一个错误或有意的限制,但我不确定。

最佳答案

I reported this as a bug ,但事实证明这种行为是设计使然,因为:

you could have code in the init block that could observe the property in its uninitialized state

关于properties - 为什么在 init block 中初始化变量接口(interface)属性的代码不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com