object Foo : CharSequence by Foo.X {
val X = ""
}
生成
Variable 'X' must be initialized
但它确实是!代码应转换为类似
的内容object Foo : CharSequence {
val X = ""
override val length get() = Foo.X.length
override operator fun get(index: Int): Char = Foo.X[index]
override fun subSequence(startIndex: Int, endIndex: Int) = Foo.X.subSequence(startIndex, endIndex)
}
运作良好。
错误的原因是什么,是否有解决方法?在实际代码中,初始化非常重要,Foo
需要是object
(实际上是伴随对象),而不是class
。
答案 0 :(得分:1)
我推测在对象上使用类委托有点不明显,所以这可能是为什么的本质。
解决方法是直接委托给String实例。这段代码适合我:
String
除此之外:Kotlin中的public async getPosts(): Promise<Post[] | undefined> { // notice `undefined`
try {
const response = await this._http.get<Post[]>(this._baseUrl + "api/JsonPlaceholder/GetPosts");
return response.toPromise();
} catch (error) {
await this.handleError(error);
}
}
没有构造函数接受String参数。奇怪,那个。